Drupal 查询中大括号和 %s 以及 %f 和 %d 的含义是什么?


What are the meaning of curly brackets and %s and %f and %d in Drupal queries?

我必须查看来自Web应用程序的脚本(基于PHP,内置于Drupal 6,但我认为这只是一个通用脚本,而不是特定于drupal 6,cmiiw)。但我仍在学习它。

这是代码:

db_query("INSERT INTO {data} ( code, nominal, desc, proofnumber, uid) 
            VALUES ('%s', %f,'%s', '%s', %d)",  $code, $nominal, $desc, $proofnumber, $uid);

我的问题:

  1. 大括号是什么意思?
  2. '%s'%d%f是什么意思?
  3. 为什么不这样写:

    INSERT INTO data (code, nominal, desc, proofnumber, uid) 
        VALUES ($code, $nominal, $desc, $proofnumber, $uid)`?
    
  1. 大括号用于表名的正确前缀,因此{data}将变为类似 myapp_data 的内容,请参阅db_prefix_tables了解更多信息。
  2. %s%d和其他说明符是 sprintf 格式说明符,您可以在db_query文档中找到一些示例。
  3. 所有这些都是以与数据库无关的方式 实现查询以及减少 SQL 注入 所必需的。