我正在制作具有此查询的搜索框功能:
$query="SELECT * FROM article WHERE title LIKE ? OR description LIKE ?";
然后在 foreach 循环中,我创建了这个数组:
$params[]= "%".$keyword."%";
$params[]= "%".$keyword."%";
然后我执行:
$stmt=$cxn->prepare($query);
$stmt->execute($params);
这可行,但是...
如果在 foreach 循环之后,我想添加“LIMIT ?,?”,我这样做:
$query.=" LIMIT ?, ?";
$params[]=$row_number;
$params[]=$items_per_page;
然后我执行脚本,它会抛出这个致命错误:
PHP Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near ''0', '2'' at line 1' in ..../index.php:247
Stack trace:
#0 .../index.php(247): PDOStatement->execute(Array)
#1 {main}
thrown in ..../index.php on line 247
我尝试在关键字周围添加撇号:$params= "'%".$keyword."%'";
但这不起作用。
此外,我在 PHPMyAdmin 中尝试了完全相同的查询,并且成功了。
有谁知道为什么这会引发错误?
提前非常感谢。