php - 不同 mysql 服务器版本的默认值

标签 php mysql

我有一个 php 项目,我在其中使用自制的 mysqli 扩展包装器。它适用于selectupdatedelete 语句,但不适用于insert

例如,我有一个包含三个字段的表 - id、name、surname。 插入查询如下所示:

$add = new SqlQuery();
$add->addField('id', 1);
$add->addField('name', 'Alex');
$add->execute();

它总是失败,因为 sql server 没有 surname 字段的默认值。
但出于某些神秘原因,此代码可在生产服务器上运行。

不同版本的mysql服务器的默认值设置有什么区别吗?
或者,是否有任何选项或参数,我如何管理 mysql 服务器的此类行为?

最佳答案

您可以为姓氏字段指定默认值,也可以自己插入占位符值。

否则,插入语句在 MySQL 端总是会失败。如果确实没有指定默认值,我不确定为什么它会在您的生产服务器上运行,但我认为无论如何在您的数据中留下这样的漏洞是不好的做法。

因此,即使用户没有提供或没有指定您应该存储的特定数据,我还是建议您自己选择一个默认占位符 - 无论是普通的 NULL 值还是空字符串或其他任何内容,但这样做会更容易如果您已正确设置数据,请稍后使用您的数据。

关于php - 不同 mysql 服务器版本的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31178490/

相关文章:

mysql - 带有 MySQL-8 数据库的 Liferay-7 不工作

bash - 带有 mysqldump 的 shell 脚本

php - 谁能推荐一个可以写入 SQL 数据库的 jQuery Shotbox 插件?

PHPmailer 和 pdf 附件

php - Elasticsearch - 2019 年按嵌套字段排序

java - 在 Android 中从服务器加载大量图像

即使我给出错误的相等值,mysql 也会返回相同的记录

php - 在 codeigniter 中选择的选项

php - 单击 PHP 按钮加载更多 MYSQL 结果

python - MySql 服务器上的 Django 模型导出