gpt4 book ai didi

php - 为什么我使用 LIKE 和 LIMIT 的 PDO 查询不起作用?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:23 24 4
gpt4 key购买 nike

我正在制作具有此查询的搜索框功能:

$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;

然后我执行脚本,它抛出这个 fatal error :

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 中尝试了完全相同的查询,它成功了。

有谁知道为什么会抛出错误?

非常感谢。

最佳答案

更新:

$query="SELECT * FROM article WHERE title LIKE ? OR description LIKE ?";
$query.=" LIMIT ?, ?";
$stmt=$cxn->prepare($query);
$stmt->bindValue(1, "%".$keyword."%");
$stmt->bindValue(2, "%".$keyword."%");
$stmt->bindValue(3, $row_number, PDO::PARAM_INT);
$stmt->bindValue(4, $items_per_page, PDO::PARAM_INT);

$stmt->execute();

关于php - 为什么我使用 LIKE 和 LIMIT 的 PDO 查询不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com