Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur PHP :appel à une fonction membre rowCount() sur un non-objet

Nous avons plus que probablement affaire à des chaînes ici, donc les variables dans vos valeurs doivent être entre guillemets.

WHERE ens_cin='$login' AND ens_pass='$password'";

De plus, le simple fait d'utiliser PDO seul ne signifie pas que vous êtes à l'abri des injections SQL.

Un aperçu :

Assurez-vous que vous vous connectez bien via PDO et non mysqli_ . Je vois souvent ce genre de questions.

Si tel est le cas, ces différentes API MySQL ne se mélangent pas.

Maintenant ceci :

$password=$_GET["password"];

Passer un mot de passe via un GET n'est pas sûr non plus; vous ne savez pas qui peut "écouter". Vous devriez utiliser POST. J'espère également que vous utilisez un hachage et non du texte brut pour le stockage du mot de passe.

Sidenote :Assurez-vous que vous utilisez bien GET et que vous ne confondez pas avec POST, si cela provient d'un formulaire HTML.

Vous ne vérifiez probablement pas les erreurs.

Ajouter $idconnex->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); juste après l'ouverture de la connexion.

Ajouter rapport d'erreurs en haut de vos fichiers, ce qui vous aidera à trouver les erreurs.

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Note complémentaire : Le signalement des erreurs ne doit être effectué qu'en préproduction, et jamais en production.