PDO rowCount错误

时间:2013-01-06 20:51:54

标签: php pdo

我第一次使用PDO。我创建了这个方法,我收到了这个错误:

 Call to a member function rowCount() on a non-object   

以下是我的代码。

 $db = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", $dbuser, $dbpassword)   

     function doesRecordExist($query) {
            global $db;
            try {
                $stmt = $db->query($query);
                $count = $stmt->rowCount();
                return $count;
            } catch (PDOException $ex) {
                die($ex->getMessage());
            }
        }

请帮助我

3 个答案:

答案 0 :(得分:3)

为什么不使用准备好的陈述:另外,您需要在计算之前执行查询

$db = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", $dbuser, $dbpassword)   

 function doesRecordExist($query) {
        global $db;
        try {
            $stmt = $db->prepare($query);
            $stmt->execute();
            $count = $stmt->rowCount();
            return $count;
        } catch (PDOException $ex) {
            die($ex->getMessage());
        }
    }

答案 1 :(得分:2)

不要使用全局变量。将此作为对象传递。

$db = new PDO(....);

 function doesRecordExist($query, PDO $db) {
        try {
            $stmt = $db->prepare($query);
            $stmt->execute();
 ...

答案 2 :(得分:1)

我忘了创建查询所引用的表。很抱歉给您带来不便