在mysqli
php 库中,在bind_param()
方法一中将参数绑定到查询。 bind_param()
的第一个参数是types
一个字符串,其中每个字符代表数据类型传递,例如,'s' 表示字符串。
$query = "update users set update_usr_id = ? where user_id = ?";
$arg1 = ($update_usr_id=$usr_id) ? '2011-01-01' : 'CURRENT_DATE';
$arg2 = $update_usr_id;
如何将 NULL 或 CURRENT_DATE 表示为参数?
例如,尝试将“CURRENT_DATE”作为字符串,但发布为“0000-00-00”。(据我所知,非法日期“0000-00-00”对于不使用 NULL 的人来说是 NULL 的 mysqlism,这显然是相当多的)。
使用参数,如何使用 NULL 和 CURRENT_DATE?
@Johan 指出 NULL确实有效。在测试中,这似乎是真的,但事实并非如此。发生的情况是,从第一个 NULL 参数开始,所有参数都设置为 NULL!
默认值与此无关。很多时候我希望在 UPDATE 中将列设置为 NULL 或 CURRENT_DATE - 而不是 INSERT - 所以默认值在事务中不起作用。
此外,编写触发器来弥补不足之处的想法mysqli
是非常糟糕的编程 - 在我写过意大利面条触发器的日子里,我是一个可以说话的人。更新日志的触发器是一回事——像这样的触发器将是一个持续的维护噩梦,代码被正确维护的可能性很小。