PHP MYSQL - 不使用列名但使用autoincrement字段插入

时间:2009-12-09 02:57:42

标签: php mysql auto-increment

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

我想做这样的事情:

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

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

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

建议?

4 个答案:

答案 0 :(得分:69)

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

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

答案 1 :(得分:12)

NULL插入自动增量字段。

我建议除非这是一个黑客脚本,否则使用字段名称。理由是,如果您向表中添加字段或更改其顺序,则代码将中断

相反,要明确使用字段名称,将来会更好。

答案 2 :(得分:-1)

当我们在插入查询中没有列名时尝试时,我们应该省略任何列值,

建议以上信息是否有误。

答案 3 :(得分:-3)

这是我用过的一条很好的快捷方式(由一位为我写这篇文章的朋友提供)

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