Подтвердить что ты не робот

PHP MYSQL - вставлять без использования имен столбцов, но с полем автоинкремента

Мне нужно вставить длинную строку с 32 полями в таблицу MySQL.

Я хотел бы сделать что-то вроде этого:

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

Очевидно, что он отлично работает, если поля находятся в том же порядке, что и поля таблицы MySQL. Но моя таблица имеет идентификатор автоинкремента в качестве первого поля.

Я хочу заполнить все имена таблиц, кроме первого (id).

Предложения?

4b9b3361

Ответ 1

Просто используйте NULL в качестве вашего первого значения, поле autoincrement будет работать, как ожидалось:

INSERT INTO tblname VALUES (NULL, ... 32 Fields ... )

Ответ 2

Вставьте NULL в поле автоматического инкремента.

Я рекомендую, чтобы, если это не хак script, вы используете имена полей. Обоснование заключается в том, что ваш код будет сломать, если вы когда-нибудь добавите поле в таблицу или измените свой порядок.

Вместо этого будьте явным с именами полей, и в будущем это будет намного лучше.

Ответ 3

Мы должны опустить любые значения столбца, когда мы пытаемся без имени столбца вставить запрос,

Посоветуйте, не указана ли выше информация.

Ответ 4

Вот отличный ярлык, который я использовал (любезно предоставил другу, который написал его для меня)

$fieldlist=$vallist='';
foreach ($_POST as $key => $value) {
 $fieldlist.=$key.',';
 $vallist.='\''.urlencode($value).'\','; }
$fieldlist=substr($fieldlist, 0, -1);
$vallist=substr($vallist, 0, -1);
$sql='INSERT INTO customer_info ('.$fieldlist.') VALUES ('.$vallist.')';