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演示

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...