使用null更新可为null的列会引发错误

ar7v8xwq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我正在使用laravelframeworkv5.5和mysql数据库。我正在尝试创建/更新记录,但出现以下错误。在我的案例中发布的列的格式为date,可以为null。但是,如果我尝试用null更新列,则会抛出错误。
请求数据:

{"id":4776,"name":"test","published":null}

错误:

"message": "SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '' for column 'published' at row 1

当然,我可以在mysql处理之前删除发布的参数,但是我必须在很多地方删除,包括这个参数和其他参数。另一个选择是禁用严格模式,但我不想这样做。还有其他选择吗?

q35jwt9p

q35jwt9p1#

如果你收到 null 很重要的一点是,要么把它传播到雄辩的层,要么把它从你的参数中删除,直到它到达那一步。
while数据库 NULL 是的有效值 DATETIME 列,可以 NULL ,空字符串不是。任何形式的铸造 null 清空字符串会毁了你这里的一切。
除非您特别需要清空字段,否则清除空参数通常是个好主意。

相关问题