gpt4 book ai didi

php - PDO 参数读取为字符串而不是 int

转载 作者:行者123 更新时间:2023-11-29 03:21:16 25 4
gpt4 key购买 nike

<分区>

我想将 GET var 传递到查询中以设置 OFFSET。

try {

$sql_offset = isset($_GET['offset']) ? $_GET['offset'] : 0;

$main_query = "SELECT * FROM Orders
LIMIT 150 OFFSET :offset";

$result = $db->prepare($main_query);
$result->bindParam(':offset', $sql_offset, PDO::PARAM_INT);
$result->execute();

} catch (Exception $e) {

$error = $e->getMessage();
echo "<h2>".$error."</h2>";
die();

}

查询失败,收到的错误信息为:

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 ''450'' at line 2

注意:如果我将 450 直接放入查询中,它就可以正常工作。

在我看来,问题在于它将参数读取为字符串“450”而不是 int 450。我尝试用 PDO::PARAM_INT 解决这个问题 - 没有帮助。
我用 (int)$sql_offsetint_val($sql_offset) 解析了值,但没有帮助。意思是,我仍然收到相同的错误消息。

问题:我说得对吗?它被视为字符串的问题是什么?如果是这样,我该如何解决?
还是这里有其他问题?

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