gpt4 book ai didi

php - PDO 执行函数是否仅限于接受参数?

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

我有一个工作的 pdo 集成数据库类。我所有的查询都非常有效,但是当我尝试传递某个值时,我卡住了。这个值是:

DATE_SUB('2010-11-03', INTERVAL 30 DAY)

现在我所有的类查询工作都准备好了:

SELECT DATE(added) AS date FROM data WHERE DATE(added) <= ?

当我尝试将值:DATE_SUB('2010-11-03', INETRVAL 30 DAY) 传递给 execute() 函数时,未收到任何结果(但查询执行成功)。

我尝试发送原始值“2010-11-03”。它工作正常但没有这个功能。有人知道这个 mysql 函数没有被传递给执行函数吗?

最佳答案

您不能使用占位符作为替换我的 SQL 查询的这一部分:占位符及其对应的绑定(bind)值只能对应于值。

当您传递 2010-11-03 时,您传递的是一个值 - 所以它有效。

当您尝试传递 DATE_SUB('2010-11-03', INTERVAL 30 DAY) 时,它不是一个值 - 所以它不起作用。


在这里,您必须重写您的 Prepared 语句,以便占位符对应于日期,而不是整个表达式:

SELECT DATE(added) AS date 
FROM data
WHERE DATE(added) <= DATE_SUB(?, INTERVAL 30 DAY)

(如果需要,30 也可以替换为占位符)

关于php - PDO 执行函数是否仅限于接受参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5338051/

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