web-dev-qa-db-ja.com

PHP MYSQL-列名を使用せずに自動インクリメントフィールドを挿入する

32個のフィールドを持つ長い行をMySQLテーブルに挿入する必要があります。

私はこのようなことをしたいです:

$sql="insert into tblname values (... 32 fields ...)";

フィールドがMySQLテーブルのフィールドと同じ順序であれば、明らかに問題なく動作します。しかし、私のテーブルには最初のフィールドとして自動インクリメントIDがあります。

私が欲しいのは、最初の(id)以外のすべてのテーブル名を入力することです。

提案?

42
Paulo Bueno

最初の値としてNULLを使用するだけで、autoincrementフィールドは期待どおりに機能します:

INSERT INTO tblname VALUES (NULL, ... 32 Fields ... )
69
Doug Neiner

NULLを自動インクリメントフィールドに挿入します。

これがハックスクリプトでない限り、フィールド名を使用することをお勧めします。その理由は、テーブルにフィールドを追加したり、順序を変更したりすると、コードがbreakになるということです。

代わりに、フィールド名を明示的に指定してください。将来的にはより良くなります。

12
gahooa