我正在尝试使用SQL LIKE
从数据库中查找值:
SELECT id FROM titles WHERE skuid LIKE '%:cusa%'
在我的PHP代码中将:cusa
定义为CUSA06536
作为动态值的地方。
它应该返回:
但是它什么也不返回。没有错误输出。难道我做错了什么?不支持动态值吗?
PHP脚本:
public function findCusa($cusa) {
$find = $this->query("SELECT id FROM titles WHERE skuid LIKE '%:cusa%'");
$find->execute(array(":cusa" => $cusa));
if($find->rowCount() > 0) {
echo 'found!';
}
echo 'not found';
}
然后称为$ps->findCusa('CUSA06536');
,找不到返回值。
答案 0 :(得分:3)
不要在%
语句中添加LIKE
,而是在PHP代码中添加。当您使用带引号的bind参数时,您的数据库框架很可能会感到困惑。
$find = $this->query("SELECT id FROM titles WHERE skuid LIKE :cusa");
$find->execute(array(":cusa" => '%' . $cusa . '%'));
答案 1 :(得分:1)
尝试使用适当的字符串,例如:使用concat
("SELECT id FROM titles WHERE skuid LIKE concat('%', :cusa, '%')");