我有一个我正在尝试使用的旧 SQL 数据库,我不确定它最初是为哪个版本构建的,但我正在尝试将它与Maria 10.2
table1看起来像这样...
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| firstname | varchar(255) | NO | | NULL | |
| lastname | varchar(255) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
我正在尝试用这样的准备好的语句给它写一个名字......
$query = $this->sql->prepare("
INSERT INTO `table1` (`firstname`)
VALUES (?)
");
$query->bind_param("s",'john');
我收到一个 SQL 错误......
[error] => Field 'lastname' doesn't have a default value
我哪里错了?看起来默认设置为NULL所以不需要我显式设置值。
我还看到提到 strict_trans_tables 是较新版本的问题,但不明白为什么这会适用于此