Bài 04: Tạo database table bằng code PHP
Sau khi tạo database bằng PHP thì chúng ta sẽ tiếp tục sư dụng PHP để tạo các table. Để tạo table thì ta sử dụng câu lệnh SQL Create Table.

1. Tạo table bằng code PHP
Tương tự như các bài trước mình sẽ đưa ra ví dụ cho cả ba trường hợp.
Giả sử mình cần tạo một table bằng lệnh SQL sau:
CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
content TEXT,
add_date TIMESTAMP
)Hình ảnh table:
Bài viết này được đăng tại [free tuts .net]

Mình sẽ không giải thích ý nghĩa của từng đoạn query SQL nữa vì mình có một series học MySQL căn bản rồi.
Bây giờ ta sẽ tìm hiểu các cách tạo table bằng code PHP.
Sử dụng MySQLi Object-oriented:
// Kết nối
$conn = new mysqli('localhost', 'root', 'vertrigo', 'FreetutsDemo');
// Kiểm tra kết nối
if ($conn->connect_error) {
die("Kết nối không thành công: " . $conn->connect_error);
}
// sql to create table
$sql = "CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
content TEXT,
add_date TIMESTAMP
)";
// Thực thi câu truy vấn
if ($conn->query($sql) === TRUE) {
echo "Tạo table thành công";
} else {
echo "Tạo table thất bại: " . $conn->error;
}
// Ngắt kết nối
$conn->close();Sử dụng MySQLi Procedural:
// Kết nối
$conn = mysqli_connect('localhost', 'root', 'vertrigo', 'FreetutsDemo');
// Kiểm tra kết nối
if (!$conn) {
die("Kết nối không thành công: " . mysqli_connect_error());
}
// Câu lệnh SQL
$sql = "CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
content TEXT,
add_date TIMESTAMP
)";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql)) {
echo "Tạo table thành công";
} else {
echo "Tạo table thất bại: " . mysqli_error($conn);
}
// Ngắt kết nối
mysqli_close($conn);Sử dụng PDO:
try {
// Kết nối
$conn = new PDO("mysql:host=localhost;dbname=FreetutsDemo", 'root', 'vertrigo');
// Thiết lập chế độ exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Câu lệnh SQL
$sql = "CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
content TEXT,
add_date TIMESTAMP
)";
// Thực thi câu truy vấn
$conn->exec($sql);
echo "Tạo table thành công";
}
catch (PDOException $e) {
echo $e->getMessage();
}
// Ngắt kết nối
$conn = null;
2. Kết hợp tạo table với tạo Database
Bây giờ mình sẽ đưa ra một ví dụ về cách kết hợp tạo databaes và tạo table cùng trên một file PHP. Để các bạn dễ hiểu thì mình sẽ lấy thư viện MySQLi hướng thủ tục để làm ví dụ nhé.
// BƯỚC 1: TẠO DATABASE
// Tạo kết nối
$conn = mysqli_connect('localhost', 'root', 'vertrigo');
// Nếu kết nối thất bại
if (!$conn) {
die("Kết nối thất bại: " . mysqli_connect_error());
}
// Lệnh tạo database
$sql = "CREATE DATABASE FreettusDemo";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql))
{
echo 'Tạo database thành công!';
// BƯƠC 2: TẠO TABLE
// Chọn database
mysqli_select_db($conn, 'FreettusDemo');
// Câu lệnh SQL
$sql = "CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(30) NOT NULL,
content TEXT,
add_date TIMESTAMP
)";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql)) {
echo "Tạo table thành công";
} else {
echo "Tạo table thất bại: " . mysqli_error($conn);
}
} else {
echo "Tạo database thất bại: " . mysqli_error($conn);
}
// Tạo xong thì ngắt kết nối
mysqli_close($conn);Bạn đọc phần coment là sẽ hiểu quy trình hoạt động.
3. Lời kết
Như vậy là bạn đã chạy được hai câu truy vấn tạo database và tạo table bằng code PHP rồi đấy. Thực tế thì rất ít khi chúng ta đụng đến hai vấn đề này trừ khi các bạn xây dựng một CMS hoặc một tools nào đó. bài tiếp theo chúng ta sẽ tìm hiểu cách insert database bằng code PHP.
Danh sách file tải về
| Tên file tải về | Pass giải nén |
|---|---|
| Tải bài học định dạng PDF | freetuts.net hoặc gameportable.net |

Xây dựng chức năng đăng nhập và đăng ký với php và mysql
Bảng mã ASCII chuẩn các hệ nhị phân - thập phân - thập lục phân
Cách khai báo biến trong PHP, các loại biến thường gặp
Bài 26: Hàm isset() và empty() trong php
Các kiểu dữ liệu trong PHP và các loại biến tương ứng
Bài 19: Phương thức GET và POST trong php
Download và cài đặt Vertrigo Server
Bài 20: Các hàm xử lý chuỗi trong php
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng