【发布时间】:2013-01-06 22:10:00
【问题描述】:
我正在使用 MDB2 的预处理语句,对 documentation 有点困惑,特别是处理 MySQL 内置函数,如 NOW() 或 CURDATE()。
$data 中传递的值必须是文字。不提交 SQL 函数(例如 CURDATE())。应该是的 SQL 函数 在执行时执行需要放在准备好的语句中。 同样,标识符(即表名和列名)不能 因为名称在准备阶段得到验证。
所以文档说要在准备好的语句中包含这些函数,但我不确定如何解释字段名。例如,如果我有一个包含五列的表:
身份证 姓 名 性别 添加日期
我想插入一行,只添加第一个、最后一个和添加日期...我可能会使用类似
INSERT INTO mytable (firstname,lastname,dateadded) VALUES('jane','doe',NOW())
如果不是添加日期的列,我会使用类似:
$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 函数?或者我是否需要计划为表中的每个字段插入值?
【问题讨论】:
-
是的,最好将您的另一个问题作为一个单独的问题发布,因为它与这个问题无关
标签: mysql function prepared-statement mdb2