Reputation: 12608
I have an older SQL database that I am trying to use, I am not sure of the version it was originally built for but I am trying to use it with Maria 10.2
table1
looks like this...
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| firstname | varchar(255) | NO | | NULL | |
| lastname | varchar(255) | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
And I am trying to write a firstname to it with a prepared statement like this...
$query = $this->sql->prepare("
INSERT INTO `table1` (`firstname`)
VALUES (?)
");
$query->bind_param("s",'john');
I am getting an SQL error.....
[error] => Field 'lastname' doesn't have a default value
Where am I going wrong? It looks like default is set to NULL
so doesn't need me to explicitly set a value.
I have also seen mention of strict_trans_tables being an issue with newer versions but can't see why this would apply here
Upvotes: 0
Views: 278
Reputation: 330
Even though your default value is NULL, the column NULL
is set to NO
.
Try
ALTER TABLE `table1` MODIFY `lastname` varchar(255) null;
Upvotes: 1