Database 为什么不使用db_查询?(drupal数据库层)

Database 为什么不使用db_查询?(drupal数据库层),database,drupal,Database,Drupal,drupal数据库层api介绍了db_查询 请勿将此函数用于插入、更新或删除查询。这些应该分别通过db_insert()、db_update()和db_delete()处理。 我认为其他数据库层也是如此。有人知道为什么吗?是否不安全、效率低下等 据我所知,这只是惯例。当然,通过db_query()运行INSERT/UPDATE不会有任何技术问题;它所做的只是对数据库运行一个普通的SQL查询,所以它肯定会工作 我可以想象文档只是指出,这些操作有专用的函数,这些函数应该优先于直接运行SQLINSE

drupal数据库层api介绍了db_查询

请勿将此函数用于插入、更新或删除查询。这些应该分别通过db_insert()、db_update()和db_delete()处理。


我认为其他数据库层也是如此。有人知道为什么吗?是否不安全、效率低下等

据我所知,这只是惯例。当然,通过
db_query()
运行
INSERT
/
UPDATE
不会有任何技术问题;它所做的只是对数据库运行一个普通的SQL查询,所以它肯定会工作

我可以想象文档只是指出,这些操作有专用的函数,这些函数应该优先于直接运行SQL
INSERT


“结构化”查询(即那些使用
db\u select()
db\u insert()
db\u update()
db\u merge()
)的查询还可以在执行之前运行,这意味着系统的其他部分可以根据需要修改它们。在使用
db\u query()

时,您不会获得相同的功能。据我所知,这只是惯例。当然,通过
db_query()
运行
INSERT
/
UPDATE
不会有任何技术问题;它所做的只是对数据库运行一个普通的SQL查询,所以它肯定会工作

我可以想象文档只是指出,这些操作有专用的函数,这些函数应该优先于直接运行SQL
INSERT

“结构化”查询(即那些使用
db\u select()
db\u insert()
db\u update()
db\u merge()
)的查询还可以在执行之前运行,这意味着系统的其他部分可以根据需要修改它们。使用
db\u query()
时,您无法获得相同的功能