Hướng dẫn move data from one table to another mysql php - di chuyển dữ liệu từ một bảng sang php mysql khác

Tôi đang cố gắng chuyển dữ liệu từ một cơ sở dữ liệu [đăng ký] sang một cơ sở dữ liệu khác khi người dùng nhấp vào một nút có tên xóa. [Tôi muốn di chuyển dữ liệu vào một bảng có tên được lưu trữ]

Đây là những gì tôi đã thử [tìm thấy từ Google]:

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

Điều này không di chuyển nó ... có ai có thể giúp đỡ?

Đã hỏi ngày 27 tháng 10 năm 2013 lúc 15:42Oct 27, 2013 at 15:42

8

Đầu tiên bạn đang thiếu một dấu ngoặc đơn, mà bạn không phải sử dụng trong trường hợp này

Thay đổi chuỗi truy vấn của bạn thành

Insert Into archived [select * from registrations WHERE id=$id]
                     ^                                        ^

hoặc công bằng

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

Đây là bản demo sqlfiddleSQLFiddle demo

Thứ hai

Insert Into archived [select * from registrations WHERE id=$id]
                     ^                                        ^
1 không trả về kết quả để bạn không nên sử dụng
Insert Into archived [select * from registrations WHERE id=$id]
                     ^                                        ^
2.

Thứ ba nếu ý định của bạn là di chuyển không chỉ để sao chép dữ liệu thì bạn cũng cần xóa hàng mà bạn đã sao chép sau đó.move not just to copy data then you also need to delete the row that you copied afterwards.

Bây giờ bạn có thể đặt tất cả vào một thủ tục được lưu trữ

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 ;

Sử dụng mẫu:

CALL move_to_archive[2];

Đây là bản demo sqlfiddleSQLFiddle demo

Thứ hai

Insert Into archived [select * from registrations WHERE id=$id]
                     ^                                        ^
1 không trả về kết quả để bạn không nên sử dụng
Insert Into archived [select * from registrations WHERE id=$id]
                     ^                                        ^
2.Oct 27, 2013 at 15:54

Thứ ba nếu ý định của bạn là di chuyển không chỉ để sao chép dữ liệu thì bạn cũng cần xóa hàng mà bạn đã sao chép sau đó.peterm

Bây giờ bạn có thể đặt tất cả vào một thủ tục được lưu trữ14 gold badges143 silver badges154 bronze badges

5

Sử dụng mẫu:

INSERT INTO archived 
SELECT * FROM registrations WHERE id = $id;

DELETE FROM registrations WHERE id = $id;

Đã trả lời ngày 27 tháng 10 năm 2013 lúc 15:54Oct 27, 2013 at 15:55

PetermpetermFilipe Silva

89.6K14 Huy hiệu vàng143 Huy hiệu bạc154 Huy hiệu đồng5 gold badges50 silver badges67 bronze badges

2

Truy vấn bạn đang cố gắng chỉ sao chép thông tin từ bảng này sang bảng khác. Sau đó, bạn phải xóa nó khỏi bảng đầu tiên:

Bài Viết Liên Quan

Chủ Đề