0

我是第一次使用 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());
            }
        }

你能帮我吗

4

3 回答 3

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());
        }
    }
于 2013-01-06T21:10:23.450 回答
2

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

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

 function doesRecordExist($query, PDO $db) {
        try {
            $stmt = $db->prepare($query);
            $stmt->execute();
 ...
于 2013-01-06T21:28:30.363 回答
1

我忘记创建查询所指的表。给您带来的不便深表歉意

于 2013-01-06T21:02:57.650 回答