Làm cách nào tôi có thể kết nối PHP với MySQL?

Để lưu trữ hoặc truy cập dữ liệu bên trong cơ sở dữ liệu MySQL, trước tiên bạn cần kết nối với máy chủ cơ sở dữ liệu MySQL. PHP cung cấp hai cách khác nhau để kết nối với máy chủ MySQL. Phần mở rộng MySQLi [MySQL cải tiến] và PDO [Đối tượng dữ liệu PHP]

Mặc dù tiện ích mở rộng PDO dễ mang theo hơn và hỗ trợ hơn mười hai cơ sở dữ liệu khác nhau, nhưng tiện ích mở rộng MySQLi như tên gợi ý chỉ hỗ trợ cơ sở dữ liệu MySQL. Tuy nhiên, tiện ích mở rộng MySQLi cung cấp một cách dễ dàng hơn để kết nối và thực hiện các truy vấn trên máy chủ cơ sở dữ liệu MySQL. Cả PDO và MySQLi đều cung cấp API hướng đối tượng, nhưng MySQLi cũng cung cấp API thủ tục tương đối dễ hiểu đối với người mới bắt đầu

Mẹo. Tiện ích mở rộng MySQLi của PHP cung cấp cả lợi ích về tốc độ và tính năng so với tiện ích mở rộng PDO, vì vậy nó có thể là lựa chọn tốt hơn cho các dự án dành riêng cho MySQL

Kết nối với máy chủ cơ sở dữ liệu MySQL

Trong PHP, bạn có thể dễ dàng thực hiện việc này bằng cách sử dụng hàm mysqli_connect[]. Tất cả giao tiếp giữa PHP và máy chủ cơ sở dữ liệu MySQL diễn ra thông qua kết nối này. Dưới đây là các cú pháp cơ bản để kết nối với MySQL bằng các phần mở rộng MySQLi và PDO

cú pháp. MySQLi, cách thủ tục

$link = mysqli_connect["tên máy chủ", "tên người dùng", "mật khẩu", "cơ sở dữ liệu"];

cú pháp. MySQLi, cách hướng đối tượng

$mysqli = new mysqli["tên máy chủ", "tên người dùng", "mật khẩu", "cơ sở dữ liệu"];

cú pháp. Cách đối tượng dữ liệu PHP [PDO]

$pdo = PDO mới["mysql. máy chủ=tên máy chủ;dbname=cơ sở dữ liệu", "tên người dùng", "mật khẩu"];

Tham số tên máy chủ trong cú pháp trên chỉ định tên máy chủ [e. g. localhost] hoặc địa chỉ IP của máy chủ MySQL, trong khi tham số tên người dùng và mật khẩu chỉ định thông tin đăng nhập để truy cập máy chủ MySQL và tham số cơ sở dữ liệu, nếu được cung cấp, sẽ chỉ định cơ sở dữ liệu MySQL mặc định sẽ được sử dụng khi thực hiện truy vấn

Ví dụ sau đây cho thấy cách kết nối với máy chủ cơ sở dữ liệu MySQL bằng MySQLi [cả hướng thủ tục và hướng đối tượng] và phần mở rộng PDO

Thí dụ

PDO hướng đối tượng thủ tục

Tải xuống

____1
setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
    
    // Print host information
    echo "Connect Successfully. Host info: " . 
$pdo->getAttribute[constant["PDO::ATTR_CONNECTION_STATUS"]];
} catch[PDOException $e]{
    die["ERROR: Could not connect. " . $e->getMessage[]];
}
?>

Ghi chú. Tên người dùng mặc định cho máy chủ cơ sở dữ liệu MySQL là

connect_error];
}
 
// Print host information
echo "Connect Successfully. Host info: " . $mysqli->host_info;
?>
0 và không có mật khẩu. Tuy nhiên để cơ sở dữ liệu của bạn không bị xâm nhập và truy cập trái phép bạn nên đặt mật khẩu cho tài khoản MySQL

Mẹo. Đặt thuộc tính

connect_error];
}
 
// Print host information
echo "Connect Successfully. Host info: " . $mysqli->host_info;
?>
1 thành
connect_error];
}
 
// Print host information
echo "Connect Successfully. Host info: " . $mysqli->host_info;
?>
0 yêu cầu PDO ném ngoại lệ bất cứ khi nào xảy ra lỗi cơ sở dữ liệu

Đóng kết nối máy chủ cơ sở dữ liệu MySQL

Kết nối đến máy chủ cơ sở dữ liệu MySQL sẽ tự động đóng ngay sau khi quá trình thực thi tập lệnh kết thúc. Tuy nhiên, nếu bạn muốn đóng nó sớm hơn, bạn có thể thực hiện việc này bằng cách gọi hàm PHP

connect_error];
}
 
// Print host information
echo "Connect Successfully. Host info: " . $mysqli->host_info;
?>
1

Kể từ PHP 5. 5, tiện ích mở rộng mysql_connect[] không được dùng nữa. Bây giờ nên sử dụng một trong 2 lựa chọn thay thế

  • mysqli_connect[]
  • PDO. __xây dựng[]

PHP mysqli_connect[]

Hàm mysqli_connect[] trong PHP dùng để kết nối với cơ sở dữ liệu MySQL. Nó trả về tài nguyên nếu kết nối được thiết lập hoặc null

cú pháp

PHP mysqli_close[]

Hàm mysqli_close[] trong PHP dùng để ngắt kết nối với cơ sở dữ liệu MySQL. Nó trả về true nếu kết nối bị đóng hoặc sai

Nếu bạn là người mới bắt đầu phát triển trang web, thì việc biết cách sử dụng tập lệnh PHP để kết nối với MySQL có thể hữu ích. Bằng cách này, bạn có thể sửa đổi, xem hoặc quản lý các bảng được tạo trong cơ sở dữ liệu MySQL. Bài viết này sẽ chỉ cho bạn những cách dễ nhất để làm điều đó, hãy bắt đầu

 

  • Tạo cơ sở dữ liệu MySQL [Tùy chọn]
  • Hai cách một tập lệnh PHP có thể kết nối với MySQL
  • Sử dụng MySQLi để kết nối tập lệnh PHP với MySQL
    • Giải thích mã MySQLi
  • Sử dụng PDO để kết nối tập lệnh PHP với MySQL
    • Giải thích mã PDO
  • Kiểm tra kết nối và khắc phục các lỗi thường gặp
    • Lỗi mật khẩu không chính xác
    • Không thể kết nối đến máy chủ MySQL

Tạo cơ sở dữ liệu MySQL [Tùy chọn]

Bước này là bắt buộc nếu bạn không có cơ sở dữ liệu MySQL. Nếu bạn là người dùng Hostinger, bạn có thể dễ dàng tạo một cái mới thông qua hPanel của Hostinger chỉ với vài bước

  1. Tìm menu Cơ sở dữ liệu MySQL trong phần Cơ sở dữ liệu
  2. Điền vào các trường cần thiết và nhấn Tạo

Để biết hướng dẫn về cách tạo cơ sở dữ liệu MySQL, hãy xem hướng dẫn cPanel của chúng tôi. Tuy nhiên, hãy nhớ rằng đây là những cơ sở dữ liệu trống và bạn sẽ cần điền dữ liệu trước khi có thể thao tác với nó

Quan trọng. Viết thông tin đăng nhập của cơ sở dữ liệu MySQL bạn vừa tạo cho bước tiếp theo. Đừng quên ghi nhớ tên người dùng cơ sở dữ liệu và mật khẩu tên người dùng

Hai cách một tập lệnh PHP có thể kết nối với MySQL

Có hai phương pháp để kết nối với cơ sở dữ liệu MySQL bằng PHP. MySQLi và PDO

MySQLi là viết tắt của MySQL được cải thiện. Nó là một tiện ích mở rộng dành riêng cho MySQL, bổ sung các tính năng mới cho giao diện của cơ sở dữ liệu MySQL. MySQLi là cả thủ tục và hướng đối tượng, trước đây là thuộc tính được kế thừa từ phiên bản MySQL cũ hơn

MySQL ban đầu chia nhỏ một tác vụ thành các quy trình tuyến tính, từng bước, điều này gây khó khăn cho việc sửa đổi vì bạn phải chỉnh sửa mã từ đầu. Trong khi đó, MySQLi xem dữ liệu là một tập hợp các đối tượng có thể hoán đổi cho nhau về chức năng, cho phép người dùng thêm bớt dữ liệu một cách dễ dàng

PDO là viết tắt của Đối tượng dữ liệu PHP. Không giống như MySQLi, PDO chỉ hướng đối tượng và hỗ trợ một số loại cơ sở dữ liệu khác nhau sử dụng PHP, chẳng hạn như MySQL, MSSQL, Informix và PostgreSQL

Quan trọng. Các chức năng mysql_ ban đầu không được dùng nữa và không nên được sử dụng vì chúng không an toàn và không còn được duy trì hoặc phát triển

Một trong những tính năng quan trọng nhất mà cả hai đều hỗ trợ là các câu lệnh được chuẩn bị sẵn, giúp tăng tốc thời gian cần thiết để MySQL thực hiện cùng một truy vấn nhiều lần. Nó cũng được sử dụng để ngăn chặn các cuộc tấn công SQL injection khi thực hiện các thay đổi đối với cơ sở dữ liệu hoặc chèn đầu vào do người dùng cung cấp vào một truy vấn hoặc câu lệnh cơ sở dữ liệu

Cho dù bạn sử dụng phương pháp nào, bạn sẽ cần thông tin chính xác để có thể kết nối với cơ sở dữ liệu MySQL mà bạn đã tạo. Đây là nơi các chi tiết cơ sở dữ liệu MySQL mà bạn đã lưu trước đó trở nên hữu ích

Bạn cũng cần tên máy chủ hoặc tên máy chủ chính xác để cấu hình. Hostinger sử dụng “localhost” làm tên máy chủ của máy chủ MySQL. Nói chung, đây là tên mà bạn sẽ muốn sử dụng nếu bạn đã tải tập lệnh PHP của mình lên cùng một máy chủ với cơ sở dữ liệu

Ngược lại, nếu bạn đang kết nối với cơ sở dữ liệu từ một vị trí ở xa [ví dụ: máy tính của bạn], bạn sẽ phải sử dụng địa chỉ IP của máy chủ MySQL. Để biết thêm chi tiết, hãy liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn để họ có thể cung cấp cho bạn thông tin chính xác về những gì sẽ sử dụng làm tên máy chủ

Sử dụng MySQLi để kết nối tập lệnh PHP với MySQL

Thực hiện theo các bước sau để sử dụng MySQLi để kết nối tập lệnh PHP với MySQL

  1. Đi tới Trình quản lý tệp -> public_html

  1. Tạo một tệp mới bằng cách nhấp vào biểu tượng từ menu phía trên

  1. Lưu tệp dưới dạng kết nối cơ sở dữ liệu. php. Bạn có thể thay thế tên bằng bất cứ thứ gì bạn thích, chỉ cần đảm bảo rằng nó đang sử dụng php làm phần mở rộng

  1. Nhấp đúp để mở tệp và sao chép-dán các dòng mã sau vào tệp. Thay đổi bốn giá trị đầu tiên bên dưới

    Giải thích mã MySQLi

    Phương thức chính được sử dụng trong tập lệnh này là mysqli_connect[]. Đây là một hàm PHP nội bộ để thiết lập kết nối mới với máy chủ MySQL

    Khi bắt đầu mã của chúng tôi, chúng tôi thấy một vài khai báo biến và giá trị được gán cho các biến đó. Thông thường, chúng tôi cần bốn trong số chúng để thiết lập kết nối cơ sở dữ liệu thích hợp. $servername, $database, $username và $password. Trong mã, chúng tôi đặt chi tiết cơ sở dữ liệu của mình làm giá trị cho các biến đó, để chúng có thể được chuyển vào hàm

    Nếu kết nối không thành công, hàm die[] sẽ được thực thi. Điều này về cơ bản giết tập lệnh của chúng tôi và cung cấp cho chúng tôi thông báo lỗi kết nối mà chúng tôi đã đặt. Theo mặc định, lỗi kết nối MySQL sẽ cho biết Kết nối không thành công, sau đó là thông báo lỗi chính xác mô tả sự cố

    Mặt khác, nếu kết nối MySQL thành công, thay vào đó, mã sẽ in Đã kết nối thành công

    Phần cuối cùng của mã là mysqli_close, phần này sẽ đơn giản đóng kết nối với cơ sở dữ liệu theo cách thủ công. Nếu không được chỉ định, các kết nối MySQL sẽ tự đóng sau khi tập lệnh kết thúc

    Sử dụng PDO để kết nối tập lệnh PHP với MySQL

    Phương pháp khác sử dụng tập lệnh PHP để kết nối với MySQL là sử dụng PDO. Điều này tương tự như phương pháp trước, nhưng với một chút thay đổi

    1. Trong public_html, tạo một tệp có tên pdoconfig. php và chèn đoạn mã sau. Như mọi khi, đừng quên thay thế các giá trị giữ chỗ bằng thông tin cơ sở dữ liệu của bạn. Lưu và Đóng nó sau khi bạn hoàn tất

Chủ Đề