gpt4 book ai didi

php - 为什么只向 mysql 数据库插入一列不会在 codeigniter 中显示错误?

转载 作者:行者123 更新时间:2023-11-30 21:26:16 25 4
gpt4 key购买 nike

更新:

因为已经给出了答案,所以我使用全新安装的 CodeIgniter 3.1.11 进行了测试。

然后创建一个新的数据库和表,其中包含 3 列:id、name、email。

然后,我尝试使用 mysql cli 插入数据:

INSERT INTO users (name) VALUES ('hikki bocchi')
--- result ---
ERROR 1364 (HY000): Field 'email' doesn't have a default value

然后,我尝试使用 CodeIgniter:

--- first code ---
$query = "INSERT INTO users (name) VALUES ('hikki bocchi')";
$this->db->query($query);
--- second code ---
$this->db->insert('users', ['name' => 'hikki bocchi']);

使用第一个代码和第二个代码的结果是一样的:

the data inserted to the database with name = 'hikki bocchi' and email = '' (blank).

这是 CodeIgniter 上的错误吗?或者这只发生在我身上?

旧:

首先,我是 CodeIgniter 和数据库的新手,所以我想获得易于理解的答案。我使用 CodeIgniter 和 MySQL,并使用 Adminer 设置数据库。

我创建了 8 列:id、name、email、password、role_id、is_active、date_created 和 date_modified。

database columns

然后我尝试使用 codeigniter 仅插入 1 列(名称),它没有显示任何错误。

$this->db->insert('users', ['name' => 'Hikki Bocchi']);

我的逻辑是,列 id、date_created、date_modified 的值会自动创建,但列名、电子邮件、密码、role_id、is_active 不会。

但是为什么数据只能插入一列呢?这一定是个错误吗?name值已插入,其他列值为空或0。

blank value

我的问题是为什么会发生这种情况?它不能显示错误吗?

最佳答案

MySQL 有默认值。当您使用 codeignier 时,它会将插入语句重写为类似于以下内容的内容:

INSERT INTO `users` (name) VALUES ('Hikki Bocchi');

从那时起,完全取决于您的数据库来确定默认值是什么。使用:

SHOW CREATE TABLE `users`;

查看您当前的默认值是什么。您可以编辑架构,并更改默认值。

关于php - 为什么只向 mysql 数据库插入一列不会在 codeigniter 中显示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com