これまでに尋ねられたすべての同様の質問を見て、それらはすべて異なるコードを持っていますので、プログラムが返されます:致命的なエラー:非オブジェクト上のメンバ関数fetch()を呼び出す
私の問題は、私のプログラムは、MySQLデータベースから情報を要求するときに、私のPHPコードが実行される
Fatal error: Call to a member function fetch() on a non-object
を返すということです。ここに私のコードは次のとおりです。
<body>
<?php
// Connexion à la base de données
include_once("connexionMysql.php");
// test si bouton ok
if (isset($_POST['valid'])) {
// construction de la req.
$requete="SELECT mdp, type FROM AY_users
WHERE login='.$_POST['login'].'";
// exécution de la requête
$reponse = $bdd->query($requete);
if ($donnees=$reponse->fetch(PDO::FETCH_ASSOC)) {
if ($donnees['mdp']==$_POST['mdp']) {
// le mot de passe est le bon
print "<br/>Authentification réussie ! <br/>\n";
if($donnees['type']==0){
header("Location: pageDaccueilAdmin.php");
}
if($donnees['type']==1){
header("Location: pageDaccueilEnseignant.php");
}
if($donnees['type']==2){
header("Location: pageDaccueilCher.php");
}
} else {
print "Le mot de passe n'est pas le bon, veuillez reessayer<br/>";
print "<a href='authentif.php'>Se reconnecter</a>";
}
} else {
// sinon : login inexistant
print "Ce login est inexistant, veuillez <br/>\n";
print "1- <a href='authentif.php'>Se reconnecter</a>";
print "2- <a href='creer.php'>créer un compte</a>";
}
}
?>
私が確認するためにprint文を持っているとして、それは間違いなく、データベースに接続します。 (MDP - >パスワード)*
この方法を試してみてくださいデシベル
から任意のistanceを得ることはありません、それは失敗し、あなたはなぜhttp://php.net/を見つける必要があり、引用符をフォーマットしましたmanual/en/pdo.error-handling.php - http://php.net/manual/en/function.error-reporting.php –
'$ requete =" mdpを選択して、AY_usersからlogin = '"と入力します。 _POST ['login']。 "'"; 'これであなたのエラーは修正されるはずですが、SQLインジェクション攻撃に脆弱なままになります。 –
また、準備された文を使用してSQLインジェクション攻撃を防止します。 http://php.net/manual/en/pdo.prepared-statements.php –