在mysqli中以id作为自动增量插入数据的正确方法

时间:2013-10-16 14:35:44

标签: mysql

有人可以使用MYSQLI验证插入数据的正确方法吗?

我需要将注释数据插入表中,ID设置为自动增量。我只是将id的值保留为空白

$db = dbConnect();
$query = "INSERT INTO comments values ('', '$comment')";
$db->query($query);

3 个答案:

答案 0 :(得分:4)

正确的方法是省略值,或者为其指定NULL 虽然在您的示例中使用的空字符串不是有效值,但在严格模式下它将发出警告。

INSERT INTO comments VALUES (NULL, 'comment')
INSERT INTO comments (comment) VALUES ('comment')

都有效。

答案 1 :(得分:0)

是的,留空并且MySQL给它一个值。

$query = "INSERT INTO comments (data_column_name) VALUES ('$comment')";

答案 2 :(得分:0)

对于自动增量列,您可以从列列表中省略它,它将生成一个新的自动增量值。你可以通过@YourCommonSense显示,通过为自动增量列指定除之外的所有列来执行此操作:

INSERT INTO comments (comment) VALUES ('comment')

对于它的价值,如果为自动增量列指定0或NULLDEFAULT,MySQL会做同样的事情。

以下是一个示例测试:

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 |
+----+----------+