首页 > 解决方案 > MySQLi php 5.3 NULL 值自动转换为不可为空字段的字符串

问题描述

我正在开发一个运行 PHP 5.3 和 MySQL 5.1 的旧版应用程序。目前我正在尝试更新到 MySQL 5.7,但我发现了一个奇怪的行为,我不确定是什么原因造成的(我很确定它是 mysqli)。

当您尝试执行如下查询时,在新数据库(MySQL 5.7)上:

$connection->query('INSERT INTO `utf_items` () VALUES ()');

我收到一个错误说某些字段没有默认值,我并不感到惊讶。

但是,在通过 mysqli 运行相同查询的 MySQL 5.1 上,我没有收到此类错误,并且不能为 NULL 且类型为varchar的字段被保存为空字符串''

query()mysqli::query()

将此查询INSERT INTO `utf_items` () VALUES ()直接运行到 MySQL(不管是什么版本)我得到了所需的错误。

我在某处错过了某种选择吗?我在其他问题中找不到类似的行为。

标签: mysql

解决方案


推荐阅读