Hướng dẫn dùng localhost mysql trong PHP

PHP – Hypertext Preprocessor là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client. PHP đã có nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ rãng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng.

PHP chạy trên môi trường WebServer và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP).

  • Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt.
  • MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (PostgreSQL, Oracle, SQL Server…) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu.
  • Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các WebServer. Thông thường các phiên bản được sử dụng nhiều nhất là RedHat Enterprise Linux, Ubuntu…

PHP hoạt động như thế nào?

Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để thông dịch dịch trang PHP và trả kết quả cho người dùng như hình bên dưới. Mô hình lập trình php

Đổi thành

Sau đó bạn Stop cái Apache và Start lại rồi thử truy cập vào localhost theo đường dẫn http://localhost:8080, nếu truy cập được thì bạn đã làm thành công. Và cũng nên lưu ý rằng, sau khi đổi cổng thì mỗi khi truy cập bạn phải sử dụng đường dẫn có kèm theo số cổng bạn vừa đổi sang vì mặc định nếu không điền thì nó sẽ sử dụng cổng 80.

Nếu bạn có sử dụng tên miền ảo như mình hướng dẫn ở trên thì bạn cũng nên sửa lại file C:\xampp\apache\conf\extra\httpd-vhost.conf cho nó sử dụng port 80 thay vì 8080.

AMP (Apache, MySQL, PHP). Nó có sẵn cho tất cả các hệ điều hành. Có nhiều tùy chọn AMP có sẵn trên thị trường được cung cấp dưới đây:

  • WAMP cho Windows
  • LAMP cho Linux
  • MAMP cho Mac
  • SAMP cho Solaris
  • FAMP cho FreeBSD
  • XAMPP (Apache, MySQL, PHP, Perl): nó bao gồm nhiều chương trình khác như FileZilla, OpenSSL, Webalizer, Mercury Mail, v.v.

Tải và cài đặt máy chủ XAMPP tại https://www.apachefriends.org/download.html

Với XAMPP bạn có thể sử dụng trình phpMyAdmin để quản trị cơ sở dữ liệu MySQL.

Khởi động MySQL Server:

Mở XAMPP:

Hướng dẫn dùng localhost mysql trong PHP

Click start để mở Apache server và MySQL server trong XAMPP:

Hướng dẫn dùng localhost mysql trong PHP

Đến đây là bạn đã cài đặt thành công MySQL Server: với username = "root" và password = "".

Sử dụng trình phpMyAdmin

Mở trình phpMyAdmin để thao tác với MySQL.

1. Mở trang http://localhost/

2. Click link phpMyAdmin:

Hướng dẫn dùng localhost mysql trong PHP

3. Giao diện phpMyAdmin:

Hướng dẫn dùng localhost mysql trong PHP

Tại đây bạn có thể thao tác với database và các table, thực thi câu lệnh SQL,...

Sử dụng Navicat thao tác với MySQL Server

Nếu bạn không thích sử dụng phpMyAdmin thì bạn có thể sử dụng phần mềm Navicat, với Navicat hỗ trợ nhiều hệ quản trị cơ sở dữ liệu như MySQL, SQL Server, PostgreSQL,...

Ví dụ sau chọn cột id, firstname và lastname từ bảng MyGuests và hiển thị các thông tin này trên trang:

Ví dụ (MySQLi hướng đối tượng)

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

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output dữ liệu trên trang
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " 
            . $row["lastname"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

Kết quả:

id: 1 - Name: David Vinh
id: 2 - Name: Tran Tan

Đoạn code trên có thể được giải thích như sau:

Đầu tiên, chúng ta thiết lập một truy vấn SQL để chọn các cột id, firstname và lastname từ bảng MyGuests. Dòng code tiếp theo thực thi truy vấn và đưa kết quả vào một biến gọi là $result.

Sau đó, các function num_rows()kiểm tra nếu có nhiều hơn 0 bản ghi trả về.

Nếu có nhiều bản ghi được trả về, hàm fetch_assoc() sẽ đặt tất cả các kết quả vào một mảng kết hợp mà chúng ta có thể lặp lại. Vòng lặp while() lặp tập kết quả và kết quả và cột id, firstname và lastname được hiển thị trên trang.

Trong cơ sở dữ liệu Database sẽ chứa nhiều dữ liệu khác nhau. Nó sẽ chia thành các bảng (Table), trong bảng lại có các cột. Ví dụ như bạn sẽ tạo một bảng là “user” với các cột (row) bao gồm id (Bắt buộc), tên, năm sinh… Hoặc đơn giản khi thiết kế website bạn sẽ cần lấy và hiển thị dữ liệu từ Database bằng Php và Mysql show các bài viết ra ngoài. Bài viết này sẽ hướng dẫn tường tận cách thức hiển thị dữ liệu trong database lên màn hình bằng code PHP.

Làm thế nào để lấy dữ liệu từ Database trong PHP?

Trong bài viết Hướng dẫn tạo Database trong Phpmyadmin chúng ta đã biết cách tạo ra một Database. Tuy nhiên vẫn chưa có một thông tin gì cả. Vì vậy chúng ta phải chèn một thông tin nào đó vào.

Trước tiên bạn truy cập vào http://localhost/phpmyadmin nhấp vào cơ sở dữ liệu là “data

Bước 2: Tạo bảng là “users

CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

Hướng dẫn dùng localhost mysql trong PHP

Tiếp theo nhấp vào “users“, trong bảng sẽ hiển thị các cột gồ “id, firstname, lastname, email, reg_date

Hướng dẫn dùng localhost mysql trong PHP

Bầy giờ tiếp tục nhấp vào tab SQL để thêm mã MySQL vào

INSERT INTO users (id, firstname, lastname, email)
VALUES ('1', 'Le', 'Nghia', '[email protected]');

Hướng dẫn dùng localhost mysql trong PHP

Cuối cùng ấn nút Tạo (Go) để hoàn tất.

Lưu ý: Cái id bạn có thể dùng hoặc bỏ đi cũng được. Mỗi một thành viên phải là một id khác nhau

Đối với các thành viên khác cũng làm tương tự

Bước 3: Lấy dữ liệu từ Database MySQL trong PHP

Bạn sẽ sử dụng đoạn code sau:

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

$sql = "SELECT id, firstname, lastname, email, reg_date FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// Load dữ liệu lên website
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Tên: " . $row["firstname"]. " "
. $row["lastname"]. " - Email: ". $row["email"]. " - Ngày đăng ký: ". $row["reg_date"]."
"; } } else { echo "0 results"; } $conn->close(); ?>

Và kết quả cuối cùng sau khi request dữ liệu từ MySQL như thế này:

Hướng dẫn dùng localhost mysql trong PHP

Vậy còn với bài viết thì làm sao nhỉ?

Bài viết thì chúng ta cũng sẽ làm tương tự như trên.

Sẽ tạo ra một bảng đặt tên là posts bao gồm các cột là “id, title, content, date” bằng đoạn mã MySQL

CREATE TABLE posts (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
content VARCHAR(1000) NOT NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

Hướng dẫn dùng localhost mysql trong PHP

Tiếp theo ấn vào

INSERT INTO users (id, firstname, lastname, email)
VALUES ('1', 'Le', 'Nghia', '[email protected]');
0 ở cột menu bên trái => Nhấp vào tab MySQL

INSERT INTO posts (title, content, date)
VALUES ('Đây là đoạn văn tiêu đề', 'Đây là đoạn văn nội dung', '');

Tiếp theo load nội dung ra lên màn hình trình duyệt bằng lênh PHP

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

$sql = "SELECT id, title, content, date FROM posts";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// Load dữ liệu lên website
while($row = $result->fetch_assoc()) {
echo "Tiêu đề: ". $row["title"]."
"; echo "Ngày: ". $row["date"]."
"; echo "Nội dung: ". $row["content"]."
"; } } else { echo "0 results"; } $conn->close(); ?>

Oke như vậy là xong rồi!.

Để load dữ liệu từ Database lên website chúng ta sẽ dùng tới lệnh SELECT… FROM… và dùng vòng lặp while.