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 に答える