Nhắc đến cơ sở dữ liệu, không thể không kể đến MySQL, nó được sử dụng rộng rãi trên hầu hết các quy mô dự án.
Nhờ vào khả năng xử lý dữ liệu khổng lồ mà nó được các nhà phát triển ưa chuộng.
Sau đây là 3 phương pháp giúp kết nối PHP với MySQL Database nhờ vào backend:
- MySQL
- MySQLi
- PDO
Hiện tại MySQL đã không còn được ưa chuộng vì các vấn đề bảo mật như SQL injection. Thay vào đó thì 2 phương pháp còn lại đang được sử dụng rất phổ biến.
MySQLi
MySQL có thể kết nối với PHP nhờ vào hàm kết nối của MySQLi. Phiên bản hiện tại của nó được nâng cấp về độ bảo mật, hiệu suất cũng như nhiều tiện ích hơn. MySQLi hỗ trợ cho PHP 5.0.0 và các trình điều khiển cài đặt 5.3.0, hỗ trợ MySQL từ phiên bản 4.1.13 trở lên.
PDO
PHP Data Objects (PDO) là một Database Abstraction Layer, có thể hình dung nó như một giao diện giúp MySQL và PHP tương tác với nhau, các thay đổi sẽ không ảnh hưởng đến PHP. Bạn có thể kết nối với nhiều cơ sở dữ liệu khác nhau nhờ vào PDO, nó giúp code của bạn trở nên đơn giản và di chuyển dễ dàng.
Bài viết dưới đây BKHOST sẽ cùng bạn tìm hiểu cách kết nối MySQL trên một số dạng máy chủ và những kiến thức khái quát về kết nối cơ sở dữ liệu bằng PDO.
Tạo MySQL Database tại Localhost
Để bắt đầu quá trình kết nối PHP với MySQL, bạn cần có một bảng điều khiển để quản lý cơ sở dữ liệu của mình đó là PHPMyAdmin. Hãy vào localhost/ PHPMyAdmin trên trình duyệt hoặc chọn “Admin” trong XAMPP.
Ở lần đầu cài đặt XAMPP, bạn chỉ tạo tên người dùng, nên bây giờ bạn cần phải tạo mật khẩu. Vào User account để có thể tạo mật khẩu, giao diện sẽ như ảnh bên dưới.
Chọn vào Edit privileges và đến Change Admin Password, tạo mật khẩu và nhấn Save. Mật khẩu này dùng để kết nối cơ sở dữ liệu do đó bạn cần phải ghi nhớ.
Lưu ý: Việc tạo mật khẩu để truy cập cơ sở dữ liệu trên localhost là không bắt buộc. Nhưng nó đảm bảo an toàn trong quá trình sử dụng.
Tạo cơ sở dữ liệu
Vào trang chủ PHPAdmin, chọn “New” để tạo một cơ sở dữ liệu mới.
Tại New bạn đặt tên cho cơ sở dữ liệu của mình ví dụ như “practice”. Chọn Collation là utf8_general_ci, lý do chọn Collation sẽ được đề cập sau. Bây giờ chọn “Create” để tạo cơ sở dữ liệu cho bạn.
Bên trong cơ sở dữ liệu được tạo sẽ không có gì do bạn chưa tạo bảng và các thông tin cần thiết khác, hãy tìm hiểu cách tạo bảng sau. Bây giờ sẽ là cách kết nối cơ sở dữ liệu với localhost bằng PHP.
Tạo một thư mục trong htdocs
Tạo một thư mục “practice” bên trong thư mục htdocs của XAMPP mà bạn đã cài. Lý do tạo thư mục trong htdocs là XAMPP sẽ chạy các trang web PHP dựa vào thư mục đó.
Lưu ý: Nếu bạn dùng WAMP thay cho XAMPP, thì thêm thư mục vào bên trong thư mục c: / wamp / www
- Tạo tệp kết nối cơ sở dữ liệu trong PHP
Tạo tệp PHP mới với tên db_connnection.php sau đó lưu lại. Để tiện cho việc truy cập vào cơ sở dữ liệu để chỉnh sửa hay bất kỳ thao tác nào mà không cần viết mã kết nối trong mỗi lần kết nối, thì bạn nên tạo một tệp kết nối cơ sở dữ liệu riêng như trên.
{{EJS0}}
Ý nghĩa của các biến trong câu lệnh trên như sau:
$ dbhost
: Là nơi lưu trữ máy chủ của bạn, thường là máy chủ cục bộ.$ dbuser
: Là tên người dùng root, $ dbpass là mật khẩu người dùng. Đây là tài khoản dùng để truy cập PHPMyAdmin.$ dbname
: Là tên cơ sở dữ liệu mà bạn đã tạo.
Bạn có thể include nó bằng hàm include (include ‘connect.php’) ở đầu code, sau đó gọi hàm và sử dụng. Nó sẽ được sử dụng trong những lần bạn di chuyển dự án từ sang thiết bị khác, hay thay đổi giá trị của tệp, hay bất kỳ thay đổi nào khác.
Tạo một tệp PHP mới để kiểm tra kết nối cơ sở dữ liệu
Tạo thêm một tệp PHP mới có tên index.php với các đoạn code như sau:
{{EJS1}}
Thực thi
Bạn sẽ thấy thông báo trên giao diện trong đường dẫn localhost / practice / index.php trên trình duyệt.
connected successfully
Đây là thông báo xác nhận rằng bạn đã kết nối thành công vào cơ sở dữ liệu của mình bằng máy chủ localhost. Nếu không thấy, hãy kiểm tra lại các tệp và các đoạn code trong tệp.
Tạo MySQL Database tại Web server
Giả sử bạn đã cài đặt PHP trên máy chủ web và hiện tại bạn đang có:
- PHP 7.3
- MySQL
Kết nối với MySQL Database
Sử dụng hàm mysql_connect
để kết nối cơ sở dữ liệu, hàm này sẽ được dùng trong những đoạn code sau này, lúc này hãy nhớ thêm thông tin đăng nhập cơ sở dữ liệu của mình.
Tạo tệp PHP mới với tên db_connnection.php
sau đó lưu lại. Để tiện cho việc truy cập vào cơ sở dữ liệu để chỉnh sửa hay bất kỳ thao tác nào mà không cần viết mã kết nối trong mỗi lần kết nối, thì bạn nên tạo một tệp kết nối cơ sở dữ liệu riêng như trên. Bạn có thể include nó bằng hàm include (include ‘connect.php’
) ở đầu code, sau đó gọi hàm và sử dụng.
Tại đây bạn sẽ có 2 tùy chọn là dùng MySQLi hay PHP PDO:
Truy vấn thủ tục MySQLi
{{EJS2}}
Kết nối PHP với MySQL Database bằng PDO
{{EJS3}}
Kiểm tra kết nối
{{EJS4}}
Kết quả sau khi kết thúc quá trình kết nối của PDO:
$ conn = null;
Các công cụ quản lý MySQL hàng đầu
MySQL Workbench
MySQL Workbench là lựa chọn hàng đầu của các nhà thiết kế, nhà phát triển cơ sở dữ liệu hay DBA. Nó hỗ trợ cung cấp thông tin, cải tiến SQL, sắp xếp máy chủ, tổ chức máy khác, … MySQL Workbench dùng được trên cả Windows, Linux và Mac OS X.
Các nhà phát triển rất ưa dùng MySQL Workbench bởi nó cung cấp các công cụ quản trị hữu ích như cấu hình máy chủ hay quản lý người dùng, vv, …
Đây là một lựa chọn hoàn hảo cho các nhà phát triển mới bắt đầu làm quen với quản trị cơ sở dữ liệu. Nhờ vào các tính năng mà nó cung cấp, bạn sẽ trở thành nhà quản trị cơ sở dữ liệu chuyên nghiệp hơn.
Ưu điểm
- Lưu cơ sở dữ liệu.
- Truy cập ngoại tuyến DB từ xa.
- Lưu trữ nhiều kết nối cùng vị trí.
- Có sẵn lược đồ và trình tạo truy vấn.
Nhược điểm
- So với PHPMyAdmin thì nó khá phức tạp.
- Có nhiều sự cố phần mềm.
Navicat for MySQL
Navicat phù hợp trong quản trị cơ sở dữ liệu đồ họa và phát triển phần mềm. Có tể nó là ứng dụng cho phép kết nối PHP MySQL và MariaDB cùng lúc duy nhất. Nó hỗ trợ trên các dữ liệu đám mây như Amazon RDS, Amazon Aurora, Oracle Cloud, Google Cloud và Microsoft Azure.
Navicat for MySQL sẽ là lựa chọn dành cho nhà phát triển có kinh nghiệm vì nó hỗ trợ các công cụ quản trị nâng cao. Nhờ vào khả năng tương thích với cơ sở dữ liệu đám mây mà nó thường được lựa chọn để quản lý ứng dụng đám mây.
Ưu điểm:
- Giao diện trực quan, dễ sử dụng.
- Kết nối MySQL dễ dàng nhờ vào thiết bị đầu cuối SSH.
- Lập lịch database – sao lưu, khôi phục, báo cáo,….
- Nhập và xuất dữ liệu từ ODBC, Excel, Access, DBF, TXT, CSV, XML, JSON.
- Có sẵn lược đồ và trình tạo truy vấn.
- Hỗ trợ trên Windows, Linux và MAC.
- Hỗ trợ làm việc theo nhóm.
Nhược điểm:
- Giá phiên bản pro cao.
- Dùng Wine để chạy trên Linux, làm chậm IDE.
- Tốn nhiều thời gian cho quy trình quản lý.
MySQL Yog
MySQL Yog cung cấp 3 gói có sẵn để bạn trải nghiệm là Professional, Enterprise và Pro.
Ứng dụng này giúp các nhà quản trị MySQL thực hiện các tác vụ quản lý một cách dễ dàng và hiệu quả. Tuy nhiên nó chỉ hỗ trợ trên Windows.
Ưu điểm:
- Hỗ trợ công cụ truy vấn.
- Có các tính năng quản trị cơ sở dữ liệu cao cấp.
Nhược điểm
- Phiên bản pro nặng.
- Thường xảy ra sự cố phần mềm.
- Chỉ hỗ trợ MySQL.
- Chỉ tương thích với Windows.
- Không hỗ trợ kéo thả.
Tổng kết
Bất kỳ ứng dụng nào cũng cần một cấu trúc cơ sở vững vàng, nhờ có nó bạn mới có thể theo dõi được thông tin ứng dụng, người dùng và dữ liệu từ máy chủ.
Bài hướng dẫn trên mang đến cho bạn 2 kiến thức chính là:
- Cách tạo cơ sở dữ liệu mới.
- Cách kết nối PHP với MySQL Database.
Như bạn đã biết thì MySQLi hay PDO để có điểm mạnh riêng của mình, do đó bạn cần cân nhắc kỹ trước khi lựa chọn để phụ trợ kết nối MySQL với PHP. Đối với MySQLi khi bạn di chuyển cơ sở dữ liệu bạn phải sửa đổi toàn bộ code, còn PDO thì lại ít thay đổi hơn bởi nó hỗ trợ đa dạng với 12 cơ sở dữ liệu.
Nếu còn có câu hỏi nào liên quan đến cách kết nối PHP với MySQL Database, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Các câu hỏi thường gặp
Làm cách nào để kiểm tra xem MySQL có đang chạy hay không?
Vào Start -> Control Panel -> Administration Tools -> Services và tìm MySQL, tại đây hãy kiểm tra xem nó có đang chạy hay không.
Làm cách nào để tìm cổng localhost cho MySQL?
- Đối với MySQL Workbench, tìm trong tab Session ở mục Information.
- Đối với phpMyAdmin, chọn vào Home, nhấp vào Variable trên menu. Tìm giá trị cổng, đó số cổng MySQL của bạn.
Cách xác đinh username và password MySQL localhost?
Xem http://php.net/manual/en/function.mysql-connect.php
. $servername = “localhost”
; $username = “root”
; $password = “”
. Nó có thể được áp dụng cho người dùng mới và hãy tạo cơ sở dữ liệu trước khi kết nối.
Hàm PHP tiêu chuẩn để kết nối với cơ sở dữ liệu MySQL là gì?
Hàm để kết nối PHP với MySQL thường dùng là mysql_connect, nó có 5 đối số.
- connect website to mysql database
- kết nối cơ sở dữ liệu trong php
- mysqli_connect trong php
- php database connection
- kết nối php với mysql
- php connect to mysql
- kết nối csdl php
- database mysqli