1

drupal 数据库层 api 说关于 db_query

不要将此函数用于 INSERT、UPDATE 或 DELETE 查询。这些应分别通过 db_insert()、db_update() 和 db_delete() 处理。 (来源)

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

4

1 回答 1

1

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

我想文档只是简单地指出这些操作有专用的功能,并且应该优先于INSERT直接运行 SQL 等。

“结构化”查询(即使用db_select()db_insert()db_update()的查询db_merge())还将获得在hook_query_alter()执行之前运行的额外好处,这意味着系统的其他部分可以根据需要更改它们。使用db_query().

于 2012-08-13T16:09:46.200 回答