Làm thế nào để kết nối PHP với MySQL Database

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Làm thế nào để kết nối PHP với MySQL Database Nếu bạn làm web, chắc chắn bạn cần quản lý, điều chỉnh, hiển thị, hoặc xóa bảng trong cơ sở dữ liệu. Bài này sẽ hướng dẫn bạn kết nối PHP với MySQL database cũng như sửa các lỗi cơ bản liên quan đến MySQL connection.

Giới thiệu

Bài chỉ dẫn này sẽ thật hữu dụng nếu bạn mới bắt đầu học về lập trình website. Chúng tôi sẽ chỉ bạn việc làm thế nào để kết nối PHP với MySQL database . Nếu bạn làm web, chắc chắn bạn cần quản lý, điều chỉnh, hiển thị, hoặc xóa bảng trong cơ sở dữ liệu.

Bạn cần chuẩn bị gì?

Trước khi bắt đầu bạn cần chuẩn bị:

  • Truy cập vào tài khoản hosting control panel

Bước 1 — Tạo MySQL Database

Bước này cần thiết trong trường hợp nếu bạn chưa có MySQL database. Tại Hostinger, MySQL database cũng có thể được tạo dễ dàng trong phần MySQL Databases . Nếu cần, bạn cũng có thể có thể đọc thêm chỉ dẫn tạo MySQL database trên cPanel(tiếng Anh). Hostinger Control Panel MySQL Databases Section

Khi bạn đã vào trong phần MySQL Databases , nhập thông tin và nhấn nút Create . Tạo cơ sở dữ liệu trong mysql database

QUAN TRỌNG: Lưu lại tin tức bạn vừa điền. Bạn cần nó để kết nối cơ sở dữ liệu trong php ở bước tiếp theo.

Bước 2 — Viết code để kết nối PHP với MySQL database

Bạn đang muốn kết nối cơ sở dữ liệu trong php nghĩa là ở website cần phải có 1 PHP code để thực thi việc này. Ở tỉ dụ này, database cũng có thể u266072517_name và user database liên quan là  u266072517_user . Bạn cũng cần được biết mật khẩu, trong tình huống này mật khẩu chúng tôi đặt ở Bước 1 là buystuffpwd .

Bạn cũng cần phải điền đúng servername hoặc hostname. Ở Hostinger, MySQL hostname cũng đặt trong mục MySQL Databases . Trong tỉ dụ này, hostname sẽ là: mysql.hostinger.com .

Ở tình huống khi bạn mong muốn kết nối mysql với php tại máy local (script lấy database của website đặt cùng server với database), bạn có thể dùng tên thường gọi localhost để đặt cho hostname. Nếu không đúng, hoặc nếu bạn đang kết nối php với mysql database từ xa (script kết nối và cơ sở dữ liệu không nằm ở trong cùng một server), bạn có thể phải sử dụng địa chỉ IP address của database server hoặc hostname của database. Để hiểu thêm tin tức chi tiết, hãy liên hệ nhà cung cấp hosting của bạn để được cung cấp đúng thông tin về hostname.

Hiện tại có 2 phương thức để kết nối tới cơ sở dữ liệu MySQL là MySQLi PDO . Một thay đổi quan trọng là cả 2 phương pháp đều đã giúp ‘prepared statements’, giúp tăng cường khả năng chống SQL injection khi kết nối mysql với php để chỉnh sửa thông tin. Function cũ ‘mysql_’ đã biết thành deprecated (lỗi thời) và không còn được dùng và phát triển nữa, vì nó tận gốc không an toàn.

MySQLi viết tắt của MySQL Improved,  nó thêm tính năng trong giao diện của MySQL. PDO viết tắt của cụm PHP Data Object . Khác biệt chính giữa PDO và MySQLi là  PDO hỗ trợ nhiều loại database không trùng lặp (MySQL, MS SQL, Postgre DB) trong cùng một scrip, bạn chỉ cần viết các hàm liên quan đến dữ liệu một lần. PDO là ‘object oriented’ (hướng đối tượng), kết nối giữa website và database được tạo bởi các biến đối tượng. Ví dụ khi tạo một object:

 $my_Object = new OBJECT(); 

MySQLi

Sau đây là tỉ dụ cơ bản cách lấy database của website qua một PHP code đơn giản:

    

Phương pháp chính của script đây là hàm m ysqli_connect() . Đây là hàm PHP, bạn cũng có thể tìm hiểu thêm tại đây.

Ở đầu code, chúng ta thấy có những biến khai báo và giá trị được cấp cho chúng. Thông thường, chúng ta cần bốn biến để thiết lập kết nối cơ sở dữ liệu trong php code: $servername, $database, $username và $password . Trong code này, chúng tôi đã đặt thông tin database chuẩn xác cho những biến này, để sau này khi sử dụng hàm mysqli_connect() chúng tôi cũng đều có thể dùng biến này để đưa cho hàm này.

Tiếp theo hàm mysqli_connect() sẽ thử thiết lập kết nối tới tới database bằng thông tin đã được cấp trong code, phần tiếp theo là code sẽ thực thi nếu hàm mysqli_connect() thực hành thành công. Như bạn thấy, sau khi kết nối thành công, nó sẽ tiếp tục với hàm sau:

 if ($conn-> connect_error) { die("Connection failed: " . $conn-> connect_error); } 

Function die() được thực thi tai đây, nó sẽ hủy script và sẽ cho kết quả mà ta đặt ra. Mặc định nó sẽ hiện Connection failed: và kèm theo một thông báo lỗi để ta biết lỗi do đâu.

Nếu kết nối thành công, phần code sau sẽ có thực thi.

 echo "Connected successfully"; 

Dòng này chỉ đơn giản hiện thông báo mà ta đã định sẵn, vì trước đấy chúng ta đã dùng hàm IF chỉ được kích hoạt khi kết nối lỗi.

Phần cuối cùng của code là:

 mysqli_close($conn); 

Nó sẽ đóng kết nối. Nếu không có dòng này, kết nối sẽ tự đóng sau khi script kết thúc. Bạn cũng đều có thể dùng dòng này để đóng kết nối với database trước khi script kết thúc.

Bạn cũng cũng đều có thể chạy code bằng cách truy cập script từ tên miền.

PDO

Một kết nối PDO database cần tạo ‘PDO object’ với Data Source Name (DSN), username và password. DSN định nghĩa loại database của bạn, tên database, và bất kỳ thông tin nào cần có khác. DSN cũng đều có thể là một biến cơ bản được dùng để tham số khi tạo PDO object, được hiển thị như code bên dưới.

PDO bổ trợ nhiều loại database không trùng lặp và DSN là nơi định nghĩ nhiều kết nối khác nhau, thay thế dòng ‘mysql:’ với tên loại database khác. Trên thực tế, script có thể giúp user chọn kết nối nào cần phải được dùng và viết code chọn biến thích hợp trong DSN. Trong bài chỉ dẫn này, chúng tôi sẽ chọn sử dụng MySQL. Đây là cách lấy database của website dựa trên PHP và MySQL.

Khi tạo PDO object dùng cho database connection, bạn cũng có thể có thể đổi nó thành mã ‘try…catch…’ . Có nghĩa là script này sẽ thử kết nối sử dụng code được xác định, nếu có vấn đề, code trong phần ‘catch’ sẽ chạy. Bạn cũng có thể dùng catch block để hiển thị mã báo lỗi hoặc chay code khác nếu công đoạn thử thất bại. Trong thí dụ của chúng ta, một mã báo lỗi đơn giản sẽ hiện ra để báo lỗi khi có thông tin nào không chính xác.

   connect_error) { die("Connection failed: " . $conn-> connect_error); } echo "Connected successfully"; ?>  

Bước 3 — Kiểm tra kết nối và sửa lỗi thông dụng

Nếu code kết nối PHP với mysql thành đạt và không gặp vấn đề nào khác, bạn sẽ thấy thông báo này sau khi truy cập vào Web sửa máy tính ITS: kết nối thành công

Trong trường hợp kết nối bị lỗi, bạn sẽ thấy thông báo khác. Mã lỗi có thể hơi khác giữa MySQLi và PDO.

Sửa lỗi PHP MySQL Connection: access denied for user

Ví dụ, nếu bạn điền không đúng mật khẩu cơ sở dữ liệu, lỗi sẽ hiện như sau:

Lỗi trên MySQLi : kết nối db thất bại

Lỗi trên PDO:

kết nối pdo thất bại

Vậy trong trường hợp nhìn thấy lỗi này, điều đầu tiên cần kiểm tra tin tức mật khẩu của database. Lỗi thông thường là do điền sai mật khẩu database. Một nguyên do khác cũng đều có thể là bạn chưa có user được gán cho database. Trong control panel của Hostinger, tin tức database và mật khẩu có thể đặt lại trong mục  MySQL Databases : database hostinger

Và trong cPanel, bạn sẽ thấy tin tức như bên dưới, hãy chắc là bạn đã gán user cho database: cPanel MySQL Database Details

Sửa lỗi PHP MySQL Connection: connection failed. Can’t connect to MySQL server

Với MySQLi: kết nối thất bại

Can’t connect to MySQL server on ‘server’ (110) có tức là script không thể tìm cách lấy database của website do server database không phản hồi. Lỗi này xảy ra cũng có thể chúng ta đặt sai tên  server.  Có thể do chúng ta vẫn để tên server mặc định là  localhost  thay vì là tên server được cấp bởi nhà cung cấp hosting.

Với PDO: pdo lỗi host name

  • [HY000] có nghĩa là lỗi chung .
  • [2002] nghĩa là  chẳng thể kết nối tới MySQL server local . Phần còn sót lại của mã lỗi là tin tức thêm, lý giải rằng “host” không thể được tìm thấy.

Ngoài ra, khi sửa lỗi, hãy kiểm tra mã lỗi (tiếng Anh) được lưu trong file báo lỗi. Bạn có thể tìm thấy nó trong cùng thư mục script đang chạy. Ví dụ, nếu chúng ta đang chạy script trong thư mục public_html , bạn sẽ thấy file error_log cũng ở thư mục public_html.

Mở nó lên, bạn sẽ thấy lỗi khi script kết nối cơ sở dữ liệu trong php tạo ra, nó sẽ giúp bạn tìm cách sửa lỗi kết nối database.

Lời kết

Trong bài chỉ dẫn này, chúng mình đã chỉ dẫn cơ bản cách kết nối php tới MySQL database bằng cách dùng MySQLi và PHP Data Objects (PDO). Bạn có thể sử dụng tài liệu này kết phù hợp với các script nâng lên khác, nhưng hãy làm bước này thành đạt vì kết nối cơ sở dữ liệu trong php trước là bước trước mắt trong quá trình thao tác với database.

Các tài liệu khác:

  • Làm thế nào để insert dữ liệu vào MySQL database

Từ khóa bài viết: dinhthuanit.com,

Bài viết Làm thế nào để kết nối PHP với MySQL Database được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang