[转]php-将数据从一个MySQL表移动到另外一个

当用户单击名为删除的按钮时,我试图将数据从一个数据库(注册)移动到另外一个数据库. (我想将数据移动到名为archived的表中)
这是我尝试过的(从Google找到):mysql

$result=mysql_query("Insert Into archived (select * from registrations WHERE id=$id") ; $row = mysql_fetch_array($result);

这不会动…任何人均可以帮忙吗?sql

最佳答案
首先,您缺乏一个括号,在这种状况下您根本不须要使用该括号
将查询字符串更改成数据库

Insert Into archived (select * from registrations WHERE id=$id) ^                                        ^

或只是fetch

Insert Into archived select * from registrations WHERE id=$id

这是SQLFiddle演示spa

其次,INSERT不返回结果集,所以您不该使用mysql_fetch_array().code

第三,若是您的意图不单单是移动数据,那么您还须要删除以后复制的行.blog

如今,您能够将其所有放入存储过程当中字符串

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 ;

用法示例:get

CALL move_to_archive(2);

这是SQLFiddle演示io

From: http://www.cocoachina.com/articles/102606

相关文章
相关标签/搜索