我必须查看来自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);
我的问题:
- 大括号是什么意思?
'%s'
、%d
和%f
是什么意思?为什么不这样写:
INSERT INTO data (code, nominal, desc, proofnumber, uid) VALUES ($code, $nominal, $desc, $proofnumber, $uid)`?
- 大括号用于表名的正确前缀,因此
{data}
将变为类似myapp_data
的内容,请参阅db_prefix_tables了解更多信息。 -
%s
、%d
和其他说明符是 sprintf 格式说明符,您可以在db_query文档中找到一些示例。 - 所有这些都是以与数据库无关的方式 实现查询以及减少 SQL 注入 所必需的。