PHP MYSQL – 插入到不使用列名称,但与自动增量字段

我需要插入一个32字段的长行到MySQL表中。

我想要做这样的事情:

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

显然,如果这些字段与MySQL表字段的顺序相同,那么它就可以正常工作。 但是,我的表有一个自动递增的ID,因为它是第一个字段。

我想要的是填写所有的表名,但第一个(ID)之一。

build议?

只需使用NULL作为第一个值, autoincrement字段仍将按预期工作:

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

NULL插入到自动增量字段中。

我build议,除非这是一个黑客脚本,你使用字段名称。 理由是如果你添加一个字段到表中或者改变它们的顺序,你的代码就会中断

相反,要明确字段名称,将来会好得多。

在插入查询中尝试不使用列名时,应该省略任何列值,

build议以上信息是否有误。

这是我使用过的一个很棒的捷径(礼貌的朋友为我写的)

 $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.')';