我最近遇到了一个旧的Laravel 4应用程序的问题。
我试图建立一个本地开发环境,在某些情况下,事情是因为非空约束而失败。
经过一番挖掘后,我发现这是由于MariaDB将空字符串视为空值。
似乎我可以切换compatibility option MDB2_PORTABILITY_EMPTY_TO_NULL,但是,我看不到我会这样做。似乎没有我可以设置的服务器变量或php变量。 Laravel似乎不支持连接字符串上的这些选项。
我在哪里停止空被视为null?
我认为这是导致问题的选择。
MDB2_PORTABILITY_EMPTY_TO_NULL 在数据输入和输出中将空字符串值转换为null。需要,因为Oracle认为空字符串为空,而大多数其他DBMS知道空和空之间的区别。
我正在插入带有空字符串的记录,并且它们会因为null不允许错误而失败。