誰かが 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
またはを指定すると、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')";