[转]php-将数据从一个MySQL表移动到另一个
当用户单击名为删除的按钮时,我试图将数据从一个数据库(注册)移动到另一个数据库. (我想将数据移动到名为archived的表中)
这是我尝试过的(从Google找到):
$result=mysql_query("Insert Into archived (select * from registrations WHERE id=$id") ; $row = mysql_fetch_array($result);
这不会动…任何人都可以帮忙吗?
最佳答案
首先,您缺少一个括号,在这种情况下您根本不需要使用该括号
将查询字符串更改为
Insert Into archived (select * from registrations WHERE id=$id) ^ ^
或只是
Insert Into archived select * from registrations WHERE id=$id
这是SQLFiddle演示
其次,INSERT不返回结果集,因此您不应使用mysql_fetch_array().
第三,如果您的意图不仅仅是移动数据,那么您还需要删除之后复制的行.
现在,您可以将其全部放入存储过程中
DELIMITER $$ CREATE PROCEDURE move_to_archive(IN _id INT) BEGIN START TRANSACTION; INSERT INTO archived SELECT * FROM registrations WHERE id = _id; DELETE FROM registrations WHERE id = _id; COMMIT; END$$ DELIMITER ;
用法示例:
CALL move_to_archive(2);
这是SQLFiddle演示
From: http://www.cocoachina.com/articles/102606