gpt4 book ai didi

php - db_select 当列名是 mysql 关键字时

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

使用db_select进行选择并且当数据库列恰好是reserved mysql word时(在本例中为when)会导致错误。

表:

+-----------------------------------+------------+--------+
| sort_id | when | user |
+-----------------------------------+------------+--------+
| 1 | 1448270950 | 123 |
| 3 | 1448270955 | 12 |
| 50 | 1448270959 | 45 |
+-----------------------------------+------------+--------+

使用db_select进行标准drupal7选择:

$query = db_select('naughty_table', 'd')
->fields('d', array('sort_id', 'when', 'user'))
->condition('user', $uid)
->limit($limit)
->execute();

名为 when 的列是此处的问题。

我知道我可以使用纯 SQL 编写查询:

db_query("SELECT sort_id, user, `when` FROM {naughty_table} WHERE user = :user", array(":user" => $user_id));

但是应该有一种方法可以使用常规 db_select 来解决这个问题吗?

最佳答案

应改为使用

where():

$query = db_select('my_table', 'd')
->fields('d', array('sort_id', '`when`', 'user'))
->condition('user', '123')
->where('`when` = :timestamp', array(':timestamp' => 1448160590))
->execute();

关于php - db_select 当列名是 mysql 关键字时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32971530/

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