我使用了PDO数百次,但现在我非常沮丧 - 一切似乎都适合我,我必须遗漏一些东西......我使用PGSql和PDO。将查询传递给PgAdmin 3并运行它 - 没问题!但是从PDO调用它是一个不同的故事。
我的代码:
(...checking if $name is null and so on...)
$query = "SELECT
*
FROM
out.city
WHERE
city_name ILIKE ?";
$stmt = $this->db->prepare($query);
try{
$res = $stmt->execute(array("'".$name."'"));
$ret = $res->fetchAll(PDO::FETCH_ASSOC);
(... rest of try-catch block...)
问题是$res
返回boolean(true)而不是object。它导致错误:
PHP Fatal error: Call to a member function fetchAll() on a non-object
我已经尝试过几种如何将$name
置于查询中的方法 - 使用问号,绑定或只是加入字符串(我知道,糟糕的方式)。他们都没有工作。
答案 0 :(得分:2)
仅应准备句柄(对象),将$res->
替换为$stmt->
,
$stmt->fetchAll(PDO::FETCH_ASSOC);