程序返回:致命错误:在非对象上调用成员函数fetch()

时间:2016-04-12 18:15:40

标签: php mysql

我查看了之前提到的所有类似问题,但他们都有不同的代码,因此无法找到答案!

我的问题是我的程序返回

  

致命错误:在非对象上调用成员函数fetch()

当我从mysql数据库请求信息时运行我的php代码。这是我的代码:

<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 - &GT;密码)*

2 个答案:

答案 0 :(得分:0)

PDO::query()会在失败时返回 PDOStatement对象 FALSE

您的查询失败(返回false)。这就是你得到非对象错误的原因:$response不是一个对象。在这种情况下,它是bool(false)

答案 1 :(得分:0)

Yuo有错误的格式引号,你的查询没有得到db的任何信息

试试这种方式

$requete="SELECT mdp, type FROM AY_users 
        WHERE login='" .$_POST['login']. "'"; 
// exécution de la requête
$reponse = $bdd->query($requete);