【发布时间】:2012-10-28 15:55:10
【问题描述】:
我需要复制/复制表中的一行,然后返回新行的“id”值。我的 'id' 列是一个自动增量字段。
$sth = $dbh->prepare("DROP TEMPORARY TABLE IF EXISTS tmp_users;
CREATE TEMPORARY TABLE tmp_users
SELECT * FROM users
WHERE user_id = $user_id
UPDATE tmp_users
SET id = NULL;
INSERT INTO users
SELECT * FROM tmp_users;
DROP TEMPORARY TABLE IF EXISTS tmp_users;");
$sth->execute();
如果我这样做 $id_new = $dbh->lastInsertId(); 这将返回“0”,但不知道为什么。有什么想法吗?
【问题讨论】:
-
PDO::prepare似乎不支持一个字符串中的多个语句;即使是这样,您在CREATE TEMPORARY TABLE语句之后缺少一个分号,因此它仍然无效。 -
上面的语句似乎使用 prepare 执行得很好。但是,我似乎无法返回新插入行的 id。
标签: mysql pdo last-insert-id