为什么PDO语句错误出现在此代码中?
我有下面的代码,我无法弄清楚,为什么PDO语句错误发生时,这里是我的代码为什么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;
}
当我运行
Fatal error: Call to undefined method PDOStatement::fetch_assoc()
任何帮助,我得到这个错误?
因为就像错误说的那样。 fetch_assoc()
未定义。
你想
$row_id->fetch(PDO::FETCH_ASSOC)
fetch()
是正确的方法名称和您通过PDO Constants它的一个来确定得到什么类型的变量回来。
谢谢。这有所帮助。但是,我遇到了我在手册中使用过的上述内容。 http://www.php.net/manual/en/mysqli-result.fetch-array.php。 – 2013-05-14 04:06:15
谢谢。这有所帮助。但是,我遇到了我在手册中使用过的上述内容。 http://www.php.net/manual/en/mysqli-result.fetch-array.php。在上面的代码中,返回$ row_id不返回任何东西,这是因为它在获取期间被消耗了吗? – 2013-05-14 04:17:45
是的。如果你返回'$ row_id',它现在只是一个空的语句句柄。如果有另一行,它会返回可以从中获取的另一个对象。你可能想要返回'$ idrow'。 – Cfreak 2013-05-14 14:02:18
请查阅http://php.net/manual/en/pdostatement.fetch.php – 2013-05-14 02:06:53