有人可以验证使用 MYSQLI 插入数据的正确方法吗?
我需要将评论数据插入到 ID 设置为自动增量的表中。我只是将 id 的值留为空白吗?
$db = dbConnect();
$query = "INSERT INTO comments values ('', '$comment')";
$db->query($query);
有人可以验证使用 MYSQLI 插入数据的正确方法吗?
我需要将评论数据插入到 ID 设置为自动增量的表中。我只是将 id 的值留为空白吗?
$db = dbConnect();
$query = "INSERT INTO comments values ('', '$comment')";
$db->query($query);
正确的方法是省略值或为其分配 NULL。
虽然您的示例中使用的空字符串不是有效值,但在严格模式下它会发出警告。
INSERT INTO comments VALUES (NULL, 'comment')
INSERT INTO comments (comment) VALUES ('comment')
都是有效的。
对于自增列,您可以从列列表中省略它,它将生成一个新的自增值。正如@YourCommonSense 所示,您可以通过指定除自动增量列之外的所有列来执行此操作:
INSERT INTO comments (comment) VALUES ('comment')
对于它的价值,如果您为自动增量列指定 0 或NULL
or ,MySQL 会做同样的事情。DEFAULT
下面是一个示例测试:
mysql> select version();
+---------------+
| version() |
+---------------+
| 5.6.13-56-log |
+---------------+
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
mysql> insert into comments values (0, 'comment1');
Query OK, 1 row affected (0.00 sec)
mysql> insert into comments values (null, 'comment2');
Query OK, 1 row affected (0.00 sec)
mysql> insert into comments values (default, 'comment3');
Query OK, 1 row affected (0.00 sec)
mysql> select * from comments;
+----+----------+
| id | comment |
+----+----------+
| 1 | comment1 |
| 2 | comment2 |
| 3 | comment3 |
+----+----------+
是的,把它留空,MySQL 会给它一个值。
$query = "INSERT INTO comments (data_column_name) VALUES ('$comment')";