我正在使用 MDB2 的准备好的语句,对文档有点困惑,特别是处理 MySQL 内置函数,如 NOW() 或 CURDATE()。
$data 中传递的值必须是文字。不要提交 SQL 函数(例如 CURDATE())。应该在执行时执行的 SQL 函数需要放在准备好的语句中。同样,不能使用标识符(即表名和列名),因为名称在准备阶段得到验证。
所以文档说要在准备好的语句中包含这些函数,但我不确定如何解释字段名。例如,如果我有一个包含五列的表:
id 姓 名 性别 date added
我想插入一行,只有第一个,最后一个和添加日期......我可能会使用类似的东西
INSERT INTO mytable (firstname,lastname,dateadded) VALUES('jane','doe',NOW())
如果不是 date added 列,我会使用类似的东西:
$types = array(
'text',
'text'
);
$sth = $mdb2->prepare('
INSERT INTO
mytable
VALUES
(
:firstname,
:lastname
)', $types);
$data = array(
'firstname' => 'Jane',
'lastname' => 'Doe'
);
$affectedRows = $sth->execute($data);
那么——就列出字段名而言,我如何解释 MySQL 函数?或者我是否需要计划为表中的每个字段插入值?