gpt4 book ai didi

php - 摆脱 db_query() drupal 中的单引号

转载 作者:行者123 更新时间:2023-11-29 21:10:48 24 4
gpt4 key购买 nike

我需要执行以下查询

switch($interval) {
case "1 month":
$interval = "1 month";
break:
case "1 year":
$interval = "1 year";
break:
}

db_query("SELECT fid FROM file_managed WHERE FROM_UNIXTIME(TIMESTAMP) <= DATE_SUB(NOW(), INTERVAL :interval)", array(":interval" => $interval))

此查询引发 SQL 错误,因为您可以看到在“1 个月”周围添加了单引号

执行的查询: 从 file_managed WHERE FROM_UNIXTIME(TIMESTAMP) <= DATE_SUB(NOW(), INTERVAL '1 个月') 中选择 fid

预期查询: 从 file_managed WHERE FROM_UNIXTIME(TIMESTAMP) <= DATE_SUB(NOW(), INTERVAL 1 个月) 中选择 fid

关于如何摆脱单引号有什么想法吗?

最佳答案

如果您有 $interval 变量的可信参数值(例如,它不是来自用户而是您填写的),您可以将其放置在 sql 字符串中而不是绑定(bind)它,如下所示:

$interval = "1 year";
db_query("SELECT fid FROM file_managed WHERE FROM_UNIXTIME(TIMESTAMP) <= DATE_SUB(NOW(), INTERVAL {$interval})");

它将运行下一个 SQL 查询:

string(95) "SELECT fid FROM file_managed WHERE FROM_UNIXTIME(TIMESTAMP) <= DATE_SUB(NOW(), INTERVAL 1 year)"

(在sql字符串周围使用双引号而不是单引号,让PHP解释器计算嵌套变量)

关于php - 摆脱 db_query() drupal 中的单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383950/

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