Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?


Php 5 trở lên có thể làm việc với cơ sở dữ liệu MySQL bằng cách sử dụng:

  • Mở rộng mysqli ("i" là viết tắt của cải tiến) (the "i" stands for improved)
  • PDO (Đối tượng dữ liệu PHP)

Các phiên bản trước của PHP đã sử dụng tiện ích mở rộng MySQL. Tuy nhiên, phần mở rộng này đã bị phản đối trong năm 2012.


Tôi nên sử dụng mysqli hay pdo?

Nếu bạn cần một câu trả lời ngắn, đó sẽ là "bất cứ điều gì bạn thích".

Cả MySQLI và PDO đều có lợi thế của họ:

PDO sẽ hoạt động trên 12 hệ thống cơ sở dữ liệu khác nhau, trong khi MySQLI sẽ chỉ hoạt động với cơ sở dữ liệu MySQL.

Vì vậy, nếu bạn phải chuyển đổi dự án của mình để sử dụng cơ sở dữ liệu khác, PDO sẽ làm cho quá trình trở nên dễ dàng. Bạn chỉ phải thay đổi chuỗi kết nối và một vài truy vấn. Với MySQLI, bạn sẽ cần viết lại toàn bộ mã - các truy vấn bao gồm.

Cả hai đều theo định hướng đối tượng, nhưng MySQLI cũng cung cấp API thủ tục.

Cả hai hỗ trợ các tuyên bố đã chuẩn bị. Các tuyên bố được chuẩn bị bảo vệ khỏi SQL Injection và rất quan trọng đối với bảo mật ứng dụng web.


Ví dụ MySQL trong cả cú pháp MySQLI và PDO

Trong đó, và trong các chương sau, chúng tôi đã chứng minh ba cách làm việc với PHP và MySQL:

  • Mysqli (hướng đối tượng)
  • Mysqli (thủ tục)
  • PDO

Cài đặt MySQLI

Đối với Linux và Windows: Phần mở rộng MySQLI được tự động cài đặt trong hầu hết các trường hợp, khi gói HYSQL PHP5 được cài đặt.

Để biết chi tiết cài đặt, hãy truy cập: http://php.net/manual/en/mysqli.installation.php


Cài đặt PDO

Để biết chi tiết cài đặt, hãy truy cập: http://php.net/manual/en/pdo.installation.php



Mở kết nối với MySQL

Trước khi chúng tôi có thể truy cập dữ liệu trong cơ sở dữ liệu MySQL, chúng tôi cần có thể kết nối với máy chủ:

Ví dụ (hướng đối tượng mysqli) theo định hướng đối tượng)

$servername = "localhost";
$username = "username";
$password = "password";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password);
$conn = new mysqli($servername, $username, $password);

// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?>
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>


Lưu ý trên ví dụ hướng đối tượng ở trên:

$ Connect_error đã bị hỏng cho đến khi Php 5.2.9 và 5.3.0. Nếu bạn cần đảm bảo khả năng tương thích với các phiên bản PHP trước 5.2.9 và 5.3.0, hãy sử dụng mã sau thay thế:

// Kiểm tra Connectionif (mysqli_connect_error ()) {& nbsp; & nbsp; die ("Kết nối cơ sở dữ liệu không thành công:".
if (mysqli_connect_error()) {
  die("Database connection failed: " . mysqli_connect_error());
}

Ví dụ (thủ tục MySQLI)

$servername = "localhost";
$username = "username";
$password = "password";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password);
$conn = mysqli_connect($servername, $username, $password);

// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?>
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>


Lưu ý trên ví dụ hướng đối tượng ở trên:

$servername = "localhost";
$username = "username";
$password = "password";

// Tạo kết nối $ Conn = new mysqli ($ servername, $ username, $ password);
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>


// kiểm tra kết nối nếu ($ Conn-> Connect_error) & nbsp; {& nbsp; & nbsp; die ("kết nối không thành công:". $ Conn-> Connect_error);} echo "kết nối thành công"; ?> In the PDO example above we have also specified a database (myDB). PDO require a valid database to connect to. If no database is specified, an exception is thrown.

Lưu ý trên ví dụ hướng đối tượng ở trên: A great benefit of PDO is that it has an exception class to handle any problems that may occur in our database queries. If an exception is thrown within the try{ } block, the script stops executing and flows directly to the first catch(){ } block.


$ Connect_error đã bị hỏng cho đến khi Php 5.2.9 và 5.3.0. Nếu bạn cần đảm bảo khả năng tương thích với các phiên bản PHP trước 5.2.9 và 5.3.0, hãy sử dụng mã sau thay thế:

// Kiểm tra Connectionif (mysqli_connect_error ()) {& nbsp; & nbsp; die ("Kết nối cơ sở dữ liệu không thành công:".

Ví dụ (thủ tục MySQLI)

// Tạo kết nối $ Conn = mysqli_connect ($ servername, $ username, $ password);


// kiểm tra kết nối if (! $ Conn) & nbsp; {& nbsp; chết ("kết nối không thành công:". mysqli_connect_error ());} echo "kết nối thành công"; ?>

Ví dụ (PDO)




Tôi có thể có các tập lệnh PHP của mình trên máy chủ A và kết nối với cơ sở dữ liệu MySQL trên máy chủ B không?

Nếu có, nó sẽ được thực hiện như thế nào? Cảm ơn trước

Đã hỏi ngày 19 tháng 11 năm 2009 lúc 14:08Nov 19, 2009 at 14:08

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Ankit Sachanankit SachanAnkit Sachan

7.49815 Huy hiệu vàng63 Huy hiệu bạc96 Huy hiệu Đồng15 gold badges63 silver badges96 bronze badges

đơn giản của nó, tất cả các kỹ thuật trên đó khá phức tạp

Giả sử bạn có cơ sở dữ liệu trên máy chủ B và trang web trên máy chủ A (giả sử nó có IP 192.234.12.1)

Trên danh sách trắng cpanel, IP của máy chủ B

và tạo một người dùng mới có đủ các đặc quyền trong cơ sở dữ liệu (giả sử người dùng này là kiểm tra)

Sau đó tạo người dùng này dưới dạng

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 16:54Nov 20, 2009 at 16:54

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Ankit Sachanankit SachanAnkit Sachan

7.49815 Huy hiệu vàng63 Huy hiệu bạc96 Huy hiệu Đồng15 gold badges63 silver badges96 bronze badges

1

Yes.

đơn giản của nó, tất cả các kỹ thuật trên đó khá phức tạp

Ví dụ về Debian: http://www.debianhelp.co.uk/remotemysql.htm

Đã trả lời ngày 19 tháng 11 năm 2009 lúc 14:10Nov 19, 2009 at 14:10

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Francisco Aquinofrancisco AquinoFrancisco Aquino

9.0671 Huy hiệu vàng 30 Huy hiệu bạc37 Huy hiệu Đồng1 gold badge30 silver badges37 bronze badges

Có, nó có thể được thực hiện.

Tìm hiểu địa chỉ IP của máy chủ A nơi các tập lệnh của bạn sẽ được tải lên. Đừng quên thay đổi localhost thành địa chỉ IP của máy chủ B trong phương thức mysql_connect () hoặc mysqli_connect ().

Bây giờ đi bảng điều khiển của máy chủ B nơi cơ sở dữ liệu của bạn.

Trong trang chủ của bảng điều khiển, hãy đi phần cơ sở dữ liệu và nhấp vào tùy chọn MySQL từ xa.

Sau đó thêm địa chỉ IP của máy chủ A và nhấp vào Thêm máy chủ.

Bây giờ bạn có thể truy cập vào cơ sở dữ liệu trong máy chủ B trong khi các tập lệnh của bạn đang chạy trong máy chủ A. Hãy nhớ rằng kết quả được định sẵn sẽ chậm vì nó nhận được dữ liệu từ cơ sở dữ liệu được đặt trên một máy chủ khác.

Chào mừng bạn

Đã trả lời ngày 27 tháng 4 năm 2017 lúc 17:21Apr 27, 2017 at 17:21

1

Chỉ là không tên máy chủ của hộp khác cho kết nối. Chi tiết phụ thuộc vào phần mở rộng bạn đang sử dụng:

$mysql = mysql_connect($host, $user, $pass);
$mysqli = new mysqli($host, $user, $password, $schema);
$pdo = new PDO("mysql:host=$host", $user, $pass);

Đảm bảo rằng người dùng được phép truy cập bởi máy chủ MySQL (tạo người dùng) và kiểm tra xem không có tường lửa nào theo cách này.

Đã trả lời ngày 19 tháng 11 năm 2009 lúc 14:13Nov 19, 2009 at 14:13

Johannesjohannesjohannes

15.6K3 Huy hiệu vàng43 Huy hiệu bạc57 Huy hiệu Đồng3 gold badges43 silver badges57 bronze badges

Đó là tất cả những gì bạn cần.

(Ngay cả bạn có thể có các tập lệnh của mình trên máy chủ A, máy chủ web của bạn trên máy chủ B và cơ sở dữ liệu của bạn trên máy chủ C ...)

Đã trả lời ngày 19 tháng 11 năm 2009 lúc 14:11Nov 19, 2009 at 14:11

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

PetermmmpetermmmPeterMmm

23.7K13 Huy hiệu vàng71 Huy hiệu bạc110 Huy hiệu đồng13 gold badges71 silver badges110 bronze badges

Tôi đã có những thách thức tương tự nhưng đây là những gì tôi làm việc: để kết nối với máy chủ B từ máy chủ A, trước tiên, bạn cần cho phép máy chủ truy cập MySQL từ xa trong cPanel (máy chủ B), home -> cơ sở dữ liệu -> MySQL từ xa và cũng danh sách trắng IP trong tường lửa (đó là địa chỉ IP của máy chủ B). Sau đó, kết nối DB PHP sau đây sẽ hoạt động.

$db_connect =  mysqli_connect("serverB.com", "dbuser", "dbpassword", "dbname");
// Evaluate the connection
if (mysqli_connect_errno()) {
    echo mysqli_connect_error();
    exit();
}else{
   //successful connection
    echo "Yes, successful";
}

Đã trả lời ngày 22 tháng 8 năm 2016 lúc 14:54Aug 22, 2016 at 14:54

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Harrison Oharrison oHarrison O

97113 Huy hiệu bạc19 Huy hiệu đồng13 silver badges19 bronze badges

Đây là một giải pháp hoàn hảo để kết nối cơ sở dữ liệu khác từ các máy chủ khác.

$dbserverName = "191.238.0.2";    
$dbUsername = "lauranco_L2L";
$dbPassword = "SL92TIW5T96L";
$dbName = "lauranco_siteBits";

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Jon

9072 Huy hiệu vàng10 Huy hiệu bạc28 Huy hiệu đồng2 gold badges10 silver badges28 bronze badges

Đã trả lời ngày 19 tháng 7 năm 2018 lúc 8:04Jul 19, 2018 at 8:04

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

Chủ đề cũ tốt.

Tuy nhiên - trong tất cả các câu trả lời xuất hiện ở đây, không có gì giải quyết về bảo mật.security.

Việc mở cổng MySQL ở bên ngoài máy chủ là điều rất không an toàn.

Tùy chọn an toàn nhất là giữ cho cổng MySQL mở cho một và duy nhất localhost trong tất cả các máy chủ.

Và có một PHP khác chạy bên trong máy chủ thứ hai, làm cho nó tạo ra đầu ra mong muốn và cung cấp tương tự cho PHP của bạn (chạy trong máy chủ đầu tiên).

Đã trả lời ngày 24 tháng 12 năm 2020 lúc 5:21Dec 24, 2020 at 5:21

Hướng dẫn how can i connect one database to another in php? - làm cách nào để kết nối một cơ sở dữ liệu này với một cơ sở dữ liệu khác trong php?

6

Làm cách nào để kết nối hai cơ sở dữ liệu trong PHP?

Kết nối nhiều cơ sở dữ liệu với php mysqli:..
Bước 1) Mở kết nối MySQL. ....
Bước 2) Chọn và truy xuất các bản ghi từ cơ sở dữ liệu đầu tiên. ....
Bước 3) Chọn và truy xuất các bản ghi từ cơ sở dữ liệu thứ hai. ....
Bước 4) Đóng kết nối. ....
Bước 1) Kết nối cơ sở dữ liệu đầu tiên với PDO. ....
Bước 2) Kết nối cơ sở dữ liệu thứ hai ..

Làm thế nào để bạn kết nối cơ sở dữ liệu với cơ sở dữ liệu khác?

Chuẩn bị để liên kết các bảng trong cơ sở dữ liệu truy cập..
Xác định vị trí cơ sở dữ liệu nguồn.Định dạng tệp có thể là MDB, MDE, ACCDB hoặc ACCDE.....
Xác định các bảng mà bạn muốn liên kết.Bạn có thể liên kết đến các bảng, nhưng bạn không thể liên kết đến truy vấn, biểu mẫu, báo cáo, macro hoặc mô -đun.....
Đóng cơ sở dữ liệu nguồn.....
Mở cơ sở dữ liệu đích ..

Chúng ta có thể kết nối với bất kỳ cơ sở dữ liệu nào từ PHP không?

PHP Kết nối với MySQL.Php 5 trở lên có thể hoạt động với cơ sở dữ liệu MySQL sử dụng: tiện ích mở rộng MySQLI ("I" là viết tắt của PDO được cải thiện) (đối tượng dữ liệu PHP)

Làm thế nào có thể chèn dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong PHP?

Thực hiện theo các bước dưới đây:..
Mở máy chủ XAMPP và khởi động Apache và MySQL ..
Mở trình duyệt của bạn và gõ trực tuyến/phpmyadmin.Tạo một cơ sở dữ liệu có tên là Geeks_database.
Bây giờ tạo một bảng có tên Bảng1 với 4 cột và nhấp vào Lưu ..
Bây giờ hãy mở cột SQL trong máy chủ cơ sở dữ liệu và chèn các bản ghi vào nó ..