【问题标题】:why not db_query? (drupal db layer)为什么不使用 db_query? (drupal 数据库层)
【发布时间】:2012-08-13 15:56:05
【问题描述】:

drupal 数据库层 api 说的是 db_query

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

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

【问题讨论】:

    标签: database drupal


    【解决方案1】:

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

    我想文档只是指出这些操作有专用的功能,并且应该首选这些功能而不是直接运行 SQL INSERT 等。

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

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多