我第一次使用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());
}
}
请帮助我
答案 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)
我忘了创建查询所引用的表。很抱歉给您带来不便