更新:
因为已经给出了答案,所以我使用全新安装的 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']);
使用第一个代码或第二个代码的结果是相同的:
插入数据库的数据名称 = 'hikki bocchi' 和电子邮件 = ''(空白)。
这是 CodeIgniter 上的错误吗?还是这只发生在我身上?
老的:
首先,我是 CodeIgniter 和数据库的新手,所以我想得到易于理解的答案。我使用 CodeIgniter 和 MySQL,并使用 Adminer 设置数据库。
我创建了 8 列:id、name、email、password、role_id、is_active、date_created 和 date_modified。
然后我尝试使用 codeigniter 仅插入 1 列(名称),它没有显示错误。
$this->db->insert('users', ['name' => 'Hikki Bocchi']);
我的逻辑是,列 id、date_created、date_modified 的值会自动创建,但列名、email、password、role_id、is_active 不会。
但是为什么数据只能插入一列呢?这不应该是一个错误吗?名称值已插入,其他列值为空白或 0。
我的问题是为什么会发生这种情况?它不能显示错误吗?