【发布时间】:2016-06-01 17:13:35
【问题描述】:
假设我有一个准备好的语句,如下所示:
$insertSql = "";
$insertSql .= "INSERT INTO table";
$insertSql .= "(tag,month_interval,month_interval_lastupdated,date_due,date_due_lastupdated,date_completion,date_completion_lastupdated,";
$insertSql .= "activeNotification,date_lastmodified) ";
$insertSql .= "VALUES (?,?,NOW(),?,NOW(),?,NOW(),?,NOW())";
但有时其中一些问号不会设置。
我可以在准备好的语句中替换一个关键字来告诉 MySQL 插入默认值吗?
类似:
if($stmt = $mysqli->prepare($insertSql)) {
if(!isset($tag)) {
// code to find first question mark and replace w/ default value
}
$stmt->bind_param('sisss',$tag,$month_interval,$date_due,$date_completion);
$stmt->execute();
}
日期字段的默认值为 '1000-01-01 00:00:00',month_interval 的默认值为 0,其余字段的默认值为 NULL。
【问题讨论】:
-
我希望您不要将您的第一个代码块视为准备好的语句,因为准备好的语句位是您的第二个代码块。是否需要分 5 部分生成 sql?另外,默认值是多少?
-
日期的默认值为'1000-01-01 00:00:00',month_interval的默认值为0,其余默认为NULL。
标签: php mysql insert prepared-statement