如何在PDO中修复对未定义函数prepare()的调用?

时间:2012-03-22 05:32:14

标签: mysql pdo undefined

问题:为什么我会收到Call to undefined function prepare()错误? 我该如何解决?

我知道this与我的问题类似,但我不知道如何将答案应用于我的案例。

$myNull = null;
$table="test_results";  
$sql = "INSERT INTO $table (instance, uid, testid, quizstart, quizend, score)
        VALUES (
                :instance, 
                :uid,
                :testid, 
                :quizstart,
                :quizend,
                :score)";

try {
    /*** connect to DB ***/  
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);


    $stmt = $dbh>prepare($sql); //  **************ERROR HERE****************

    $stmt->bindParam(':instance', $myNull, PDO::PARAM_INT);    
    $stmt->bindParam(':uid',$userID, PDO::PARAM_INT);
    $stmt->bindParam(':testid', $tid, PDO::PARAM_STR);
    $stmt->bindParam(':quizstart', $quizstart,PDO::PARAM_STR);
    $stmt->bindParam(':quizend', $quizend,PDO::PARAM_STR);
    $stmt->bindParam(':score', $score,PDO::PARAM_STR);
    $stmt->execute();

     /*** display the id of the last INSERT ***/
    $lastInsertValue=$dbh->lastInsertId();

    $stmt->closeCursor();

    /*** close the database connection ***/
    $dbh = null;  
}

2 个答案:

答案 0 :(得分:3)

您错过了-。试试这个

$stmt = $dbh->prepare($sql);

答案 1 :(得分:1)

您使用的是大于运算符而不是箭头(->

$dbh>prepare($sql); //WRONG
$dbh->prepare($sql); // CORRECT