当我在google cloud shell中运行此查询时,它工作正常,并按预期返回5行数据:
SELECT * FROM tblData WHERE Address LIKE '%123 Queen%' LIMIT 5;
但当我用同样的搜索词 123 Queen
对于此参数化pdo查询,它不返回任何结果:
$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$stmt = $conn->prepare("SELECT * FROM tblData WHERE Address LIKE :term LIMIT 5");
$stmt->execute(array(':term' => '%'.$_GET['term'].'%'));
我做错什么了?
2条答案
按热度按时间93ze6v8z1#
尝试以下操作:
SELECT * FROM tblData WHERE Address LIKE CONCAT('%',:term,'%') LIMIT 5
9rnv2umw2#
我最初的问题是为什么这个参数化pdo查询没有返回任何记录:
事实证明,上面的代码绝对没有错。我的错误是在
json_encode
声明如下。我错误地提到array
,当我应该提到$array
这样地:我是应@lundincast的请求提供此答案的。