Hướng dẫn can we connect two databases at a time in php? - chúng ta có thể kết nối hai cơ sở dữ liệu cùng một lúc trong php không?

Tôi đang cố gắng kết nối với 2 cơ sở dữ liệu trên cùng một trường hợp của MySQL từ 1 tập lệnh PHP.

Hiện tại cách duy nhất tôi tìm ra là kết nối với cả hai cơ sở dữ liệu với một người dùng khác nhau cho mỗi cơ sở.

Tôi đang sử dụng điều này trong tập lệnh di chuyển trong đó tôi đang lấy dữ liệu từ cơ sở dữ liệu gốc và chèn nó vào mục mới, vì vậy tôi đang lặp qua danh sách lớn các kết quả.

Kết nối với 1 cơ sở dữ liệu và sau đó cố gắng bắt đầu kết nối thứ hai với cùng một người dùng chỉ cần thay đổi cơ sở dữ liệu hiện tại thành dữ liệu mới.

Bất kỳ ý tưởng khác?

Jeff

21.6K6 Huy hiệu vàng 50 Huy hiệu bạc55 Huy hiệu Đồng6 gold badges50 silver badges55 bronze badges

Hỏi ngày 24 tháng 10 năm 2008 lúc 21:07Oct 24, 2008 at 21:07

Darryl Heindarryl HeinDarryl Hein

Huy hiệu vàng 140K9090 gold badges214 silver badges260 bronze badges

2

Nếu người dùng cơ sở dữ liệu của bạn có quyền truy cập vào cả cơ sở dữ liệu và chúng ở cùng một máy chủ, bạn có thể sử dụng một kết nối và chỉ cần chỉ định cơ sở dữ liệu bạn muốn làm việc trước tên bảng. Thí dụ:

SELECT column
FROM database.table

Tùy thuộc vào những gì bạn cần làm, bạn có thể thực hiện INSERT INTO và tiết kiệm một loạt thời gian xử lý.

INSERT INTO database1.table [column]
SELECT database2.table.column
FROM database2.table

Đã trả lời ngày 24 tháng 10 năm 2008 lúc 21:42Oct 24, 2008 at 21:42

Joe Lencionijoe LencioniJoe Lencioni

10.1K17 Huy hiệu vàng53 Huy hiệu bạc66 Huy hiệu Đồng17 gold badges53 silver badges66 bronze badges

1

Lucas là chính xác. Tôi giả sử rằng cả hai cơ sở dữ liệu đều được lưu trữ trên cùng một máy chủ.

Ngoài ra, bạn chỉ có thể tạo kết nối 1 dB và tiếp tục hoán đổi cơ sở dữ liệu theo yêu cầu. Đây là mã giả.

$db_conn = connect_db[host, user, pwd];
mysql_select_db['existing_db', $db_conn];
 -- do selects and scrub data --
mysql_select_db['new_db', $db_conn];
-- insert the required data --

Đã trả lời ngày 24 tháng 10 năm 2008 lúc 21:32Oct 24, 2008 at 21:32

GauravgauravGaurav

4861 Huy hiệu vàng3 Huy hiệu bạc5 huy hiệu đồng1 gold badge3 silver badges5 bronze badges

Tôi sẽ đề nghị sử dụng hai trình xử lý kết nối

   $old = mysql_connect['old.database.com', 'user', 'pass];
   mysql_select_db['old_db', $old];


   $new = mysql_connect['new.database.com','user','pass];
   mysql_select_db['new_db', $new]

   // run select query on $old
   // run matching insert query on $new

Đã trả lời ngày 24 tháng 10 năm 2008 lúc 21:17Oct 24, 2008 at 21:17

The.Anti.9The.Anti.9The.Anti.9

42.1K47 Huy hiệu vàng120 Huy hiệu bạc161 Huy hiệu Đồng47 gold badges120 silver badges161 bronze badges

0

Nếu đó là một tùy chọn, hãy sử dụng PDO: Bạn có thể có nhiều kết nối cơ sở dữ liệu mở như bạn muốn.

Ngoài ra, giả sử thực hiện các truy vấn giống nhau của bạn nhiều lần, bạn có thể sử dụng các câu lệnh đã chuẩn bị.

Đã trả lời ngày 24 tháng 10 năm 2008 lúc 22:21Oct 24, 2008 at 22:21

Gary Richardsongary RichardsonGary Richardson

15.8k10 Huy hiệu vàng52 Huy hiệu bạc48 Huy hiệu đồng10 gold badges52 silver badges48 bronze badges

Bạn có thể dễ dàng sử dụng 2 cơ sở dữ liệu cùng một lúc với các mã sau:

Bài Viết Liên Quan

Chủ Đề