我有以下代码,我无法弄清楚PDO语句出错的原因,这是我的代码
try {
$db = new PDO("mysql:dbname=imdb","username","pwd");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$first_name=$db->quote($first_name);
$last_name=$db->quote($last_name);
$row_id=$db->query("SELECT id FROM actors WHERE last_name=$last_name AND first_name LIKE ${first_name} ORDER BY film_count DESC LIMIT 1");
if ($row_id->rowCount() > 0) {
$idrow=$row_id->fetch_assoc();
print_r($idrow);
return $row_id;
}
else {
return Null;
}
}
catch (PDOException $ex) {
?>
<p>Sorry, a database error occurred. Please try again later.</p>
<p>(Error details: <?= $ex->getMessage() ?>)</p>
<?php
return NULL;
}
我跑
时出现此错误致命错误:调用未定义的方法PDOStatement :: fetch_assoc()
任何帮助?
答案 0 :(得分:2)
因为就像错误所说的那样。 fetch_assoc()
未定义。
你想要
$row_id->fetch(PDO::FETCH_ASSOC)
fetch()
是正确的方法名称,您将其传递给PDO Constants之一以确定要返回的变量类型。