【发布时间】:2017-06-02 15:27:32
【问题描述】:
我在使用 Laravel 的查询生成器 (DB Facade) 执行 sql 更新/插入时遇到问题。在表格中插入一行时,我得到了
QueryException:日期时间格式无效:1292 日期值不正确: “FoundationDate”列的“0000-00-00”。
当我将 SQL 语句复制到 PHPMyAdmin 时,它可以正常工作。我知道这取决于sql_mode 设置。我检查了这个变量,没有启用严格模式!那么它怎么可能在 PHPMyAdmin 上工作,但在 Laravel 却不行呢?
我正在使用 Mysql 5.5.49 和 Laravel 5.3。
提前致谢!
【问题讨论】:
-
你在哪里检查变量?可以为当前会话设置该值,一个体面的框架应该总是这样做。不管怎样,我认为一开始就防止无效日期发生会不会那么麻烦。
-
在 PhpMyAdmin 中,您可以检查变量值(选项卡“变量”)。变量 sql_mode 为空。
-
PhpMyAdmin 不是您的 Laravel 应用程序的一部分,因此它将建立自己的数据库连接。您需要验证来自 PHP 本身的值。
-
我会澄清一下:转到“搜索/在文件中查找”并在整个代码库中查找字符串“sql_mode”。
标签: mysql sql laravel laravel-5 laravel-5.3