Mysql选项 zeroDateTimeBehavior=convertToNull 在PHP中怎么设置

如题所述

1.在插入的时候判断:
$time = 0;
$sql = "insert into date (name,date) values('111',if('{$time}','{$time}',null))";

这样会在插入 0 时 变为 null,或者插入 0 的时候 改为 now()

2.在查询数据判断:
SELECT id, name,if(date = '0000-00-00 00:00:00', NULL , date ) AS date FROM `date`

这样就会将值为 0000-00-00 00:00:00 转换为 null

3 设置sql_model
mysql_query("set sql_mode='no_zero_date'");
mysql_query("insert into date (name,date) values('xxx'0)");

如果在temestamp 列插入 0 会产生警告,但是数据还是会插入成功,如果插入 0 失败的话sql_model 为:set sql_mode='strict_all_tables,no_zero_date';

这样插入就会报如下错误:
ERROR 1292 (22007): Incorrect datetime value: '0' for column 'date' at row 1
温馨提示:答案为网友推荐,仅供参考
相似回答