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