SQL喜欢不搜索

时间:2018-07-03 15:38:50

标签: php sql

我正在尝试使用SQL LIKE从数据库中查找值:

SELECT id FROM titles WHERE skuid LIKE '%:cusa%'

在我的PHP代码中将:cusa定义为CUSA06536作为动态值的地方。

它应该返回:

enter image description here

但是它什么也不返回。没有错误输出。难道我做错了什么?不支持动态值吗?


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');,找不到返回值。

2 个答案:

答案 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, '%')");