drupal 数据库层 api 说关于 db_query
不要将此函数用于 INSERT、UPDATE 或 DELETE 查询。这些应分别通过 db_insert()、db_update() 和 db_delete() 处理。 (来源)
我认为这也适用于其他数据库层。有人知道为什么吗?是否不安全、效率低下等?
据我所知,这只是惯例。INSERT
当然,运行/ UPDATE
through没有技术问题db_query()
;它所做的只是对数据库运行一个普通的 SQL 查询,所以它肯定会工作。
我想文档只是简单地指出这些操作有专用的功能,并且应该优先于INSERT
直接运行 SQL 等。
“结构化”查询(即使用db_select()
、db_insert()
和db_update()
的查询db_merge()
)还将获得在hook_query_alter()
执行之前运行的额外好处,这意味着系统的其他部分可以根据需要更改它们。使用db_query()
.