如何使用LIKE和OR准备/执行pdo?

时间:2014-01-21 09:45:31

标签: php mysql pdo

我有这个pdo查询:

$stmt = $pdo->query("SELECT ... WHERE `tags` LIKE '$keywords %' OR `tags` LIKE '% $keywords %' OR `tags` LIKE '% $keywords'");

我希望将其转换为准备/执行pdo。我写道:

$stmt = $pdo->prepare("SELECT ... WHERE `tags` LIKE ? OR `tags` LIKE ? OR `tags` LIKE ?");
$stmt->execute(array('$keywords %', '% $keywords %', '% $keywords'));

但它不起作用。我该怎么做?

1 个答案:

答案 0 :(得分:0)

语法不正确。将变量放在''中会将其变为字符串。仅将%放入''并将.添加到已执行的变量中。以下应该有效:

示例:

$stmt->execute(array($keywords . '%', '%' . $keywords . '%', '%' . $keywords));