我有这个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'));
但它不起作用。我该怎么做?
答案 0 :(得分:0)
语法不正确。将变量放在''
中会将其变为字符串。仅将%
放入''
并将.
添加到已执行的变量中。以下应该有效:
示例:强>
$stmt->execute(array($keywords . '%', '%' . $keywords . '%', '%' . $keywords));