PHP:将id用于另一列

时间:2010-11-04 11:46:16

标签: php

好的,所以我有一个插入数据库的普通查询。

mysql_query("INSERT INTO users_pm_in (uID, msg) VALUES ('$uID', '$msg')");

现在这个表还有一个名为“id”的列,其中包含auto_increment&主键。

当它插入时,auto会为行中的列生成数字。现在我想要这个数字,并把它放在列对话框中,在同一行。因此插入的行在“id”和“dialog”中具有相同的数字/ id。我怎么能这样做?

4 个答案:

答案 0 :(得分:5)

不确定是否可以在一个查询中完成此操作(或者您甚至想要执行此操作的原因),但您可以使用此命令:

mysql_query("INSERT INTO users_pm_in (uID, msg) VALUES ('$uID', '$msg')");
mysql_query("UPDATE users_pm_in SET dialog = id WHERE id = '".mysql_insert_id()."');

请务必正确转义变量。

答案 1 :(得分:1)

我认为删除自动增量并自行添加id +对话框值会更容易。

答案 2 :(得分:1)

查看mysql_insert_id()

答案 3 :(得分:1)

你可以做到这一点,尽管效率不高......

请说明你有这张表:

CREATE TABLE `test` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `a` INT(10) NULL DEFAULT '0',
    `b` INT(10) NULL DEFAULT '0',
    PRIMARY KEY (`id`)
)
ENGINE=MyISAM
ROW_FORMAT=DEFAULT

您可以执行以下查询:

INSERT INTO test (a, b) SElECT IFNULL((MAX(id) +1),1), 200 FROM test;

请注意,“200”是将在“b”列上插入的随机值。