mysql - 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 - 计数在 group_concat Mysql 中不起作用
- scala - Scala Action定义中“=>”之前的变量是什么意思?
- javascript - 更改按钮 onclick 功能时设置参数?
- javascript - 排队遇到问题
- c - 多行字符串输入
- angularjs - 使用 AngularJS 重定向到不同页面的特定部分
- python-3.x - 如何使用 matplotlib 修复条形图中被覆盖的值?
- python - Python http.client.RemoteDisconnected
- vba - 将工作表名称分配给函数/子参数
- android - 试图将图像保存到画廊