gpt4 book ai didi

php - SQL 查询有什么问题?

转载 作者:行者123 更新时间:2023-11-29 02:12:07 25 4
gpt4 key购买 nike

我正在使用此查询获取行范围,例如 0-5 ,但我收到一条错误消息。

代码如下:

if(isset($_GET['page']) && isset($_GET['per'])){        
$per = $_GET['per'];
$pageNumber = $_GET['page'];
$from = ($pageNumber * $per) - $per;
$results = $pdo->prepare('SELECT * FROM users LIMIT :sfrom , :sto');
$results->execute(array('sfrom' => $from , 'sto' => $per));
}

我收到以下错误:

fatal error :消息为“SQLSTATE[42000] 的未捕获异常“PDOException”:语法错误或访问冲突:1064 您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本对应的手册,了解在 ''5' , '5'' 附近使用的正确语法

我认为那是因为 $from$per 被插入为字符串或我尝试使用 (int)$from< 将它们转换为 int 的东西 , (int)$per但是还是有同样的错误

最佳答案

传递的值必须是整数,但转换它们是不够的。

使用PDOStatement::bindParam

指示PDO绑定(bind)参数的类型为integer/强>

然后调用PDOStatement::execute 作为最后一步(不带参数)。

$results = $pdo->prepare('SELECT * FROM users LIMIT :sfrom , :sto');
$results->bindParam(':sfrom', (int)$from, PDO::PARAM_INT );
$results->bindParam(':sto', (int)$to, PDO::PARAM_INT );
$results->execute();

参见 http://php.net/manual/en/pdostatement.bindparam.php

关于php - SQL 查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49089492/

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