web-dev-qa-db-fra.com

PHP MYSQL - Insérer dans sans utiliser les noms de colonne mais avec un champ d'auto-incrémentation

J'ai besoin d'insérer une longue ligne avec 32 champs dans une table MySQL.

Je voudrais faire quelque chose comme ça:

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

Évidemment, cela fonctionne bien si les champs sont dans le même ordre que les champs de la table MySQL. Mais, ma table a un identifiant d'incrémentation automatique comme premier champ.

Ce que je veux, c'est remplir tous les noms de table sauf le premier (id).

Suggestions?

42
Paulo Bueno

Utilisez simplement NULL comme première valeur, le champ autoincrement fonctionnera toujours comme prévu:

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

Insérez NULL dans le champ d'incrémentation automatique.

Je recommande qu'à moins qu'il s'agisse d'un script de piratage, vous utilisez des noms de champs. La raison en est que votre code break si vous ajoutez un champ à la table ou modifiez son ordre.

Au lieu de cela, soyez explicite avec les noms de champ, et cela ira beaucoup mieux à l'avenir.

12
gahooa