Bài 03: Tạo table(bảng) bằng PHP

PHP & MySQL 17/03/2017 07:00 1429
Trong bài viết này mình sẽ hướng dẫn các bạn sử dụng PHP để tạo table trong MySQL.

Bảng trong MySQL là một tập hợp bao gồm các dòng và các cột. Trong MySQL mệnh đề CREATE TABLE cho phép bạn tạo mới một bảng trong CSDL.

Trong CSDL MySQLDemo chúng ta đã tạo ở bài trước chúng ta sẽ tạo một bảng có tên là 'News' bao gồm cột cột là id,title,slug,intro,content,create_at,order_no,is_trash,is_online.

CREATE TABLE News (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
slug VARCHAR(255) NOT NULL,
intro TEXT(0),
content LONGTEXT(0),
create_at INT(10),
order_no INT(10),
is_trash TINYINT(1),
is_online TINYINT(1)
)

Lưu ý: Mỗi một colum thì bạn phải chỉ định cho nó một kiểu dữ liệu. Để tham khảo các kiểu dữ liệu trong MySQL bạn vui lòng xem MySQL Data Types

Sau loại dữ liệu, bạn có thể chỉ định các thuộc tính tùy chọn khác cho mỗi cột:

  • NOT NULL - Mỗi hàng phải chứa một giá trị cho cột đó, các giá trị null không được phép
  • DEFAULT giá trị mặc định - Thiết lập một giá trị mặc định được thêm vào khi không có giá trị khác được thêm vào
  • UNSIGNED - Được sử dụng cho các loại dữ liệu kiểu số, giới hạn được lưu trữ đến số dương và số không
  • AUTO INCREMENT - MySQL tự động tăng giá trị của trường lên 1 mỗi lần một bản ghi mới được thêm(PRIMARY KEY)
  • PRIMARY KEY - Được sử dụng để xác định duy nhất các hàng trong một bảng. Cột với cài đặt PRIMARY KEY thường là một số ID và thường được sử dụng với AUTO_INCREMENT

Mỗi bảng nên có một cột khoá chính (trong trường hợp này là cột "id"). Giá trị của nó phải là duy nhất cho mỗi bản ghi trong bảng.

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:

// Thông tin kết nối
$host= "localhost";
$username = "username";
$password = "password";
$dbname = "MySQLDemo";

// Tạo kết nối
$dbconn = new mysqli($host, $username, $password, $dbname);

// Kiểm tra kết nối
if ($dbconn->connect_error) {
    die("Kết nối thất bại: " . $dbconn->connect_error);
}
$sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    slug VARCHAR(255) NOT NULL,
    intro TEXT(0),
    content LONGTEXT(0),
    create_at TIMESTAMP,
    order_no INT(10),
    is_trash TINYINT(1),
    is_online TINYINT(1)
)";

if ($dbconn->query($sql) === TRUE) {
    echo "Tạo bảng thành công";
} else {
    echo "Tạo bảng thất lại: " . $dbconn->error;
}
// Ngắt kết nối
$dbconn->close();

Sử dụng MySQLi Procedural

// Thông tin kết nối
$host= "localhost";
$username = "username";
$password = "password";
$dbname = "MySQLDemo";

// Tạo kết nối
$dbconn = mysqli_connect($host, $username, $password, $dbname);

// Kiểm tra kết nối
if (!$dbconn) {
    die("Kết nối thất bạ: " . mysqli_connect_error());
}
$sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    slug VARCHAR(255) NOT NULL,
    intro TEXT(0),
    content LONGTEXT(0),
    create_at TIMESTAMP,
    order_no INT(10),
    is_trash TINYINT(1),
    is_online TINYINT(1)
)";
if (mysqli_query($dbconn,$sql) === TRUE) {
    echo "Tạo bảng thành công";
} else {
    echo "Tạo bảng thất lại: " . mysqli_error($dbconn);
}
// Ngắt kết nối
mysqli_close($dbconn);

Sử dụng PDO

// Thông tin kết nối
$host= "localhost";
$username = "username";
$password = "password";
$dbname = "MySQLDemo";

try {
    // Tạo kết nối
    $dbconn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    
    // Thiết lập chế độ exception
    $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // Lệnh SQL tạo bảng
    $sql = "CREATE TABLE MyGuests (
        id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(255) NOT NULL,
        slug VARCHAR(255) NOT NULL,
        intro TEXT(0),
        content LONGTEXT(0),
        create_at TIMESTAMP,
        order_no INT(10),
        is_trash TINYINT(1),
        is_online TINYINT(1)
    )";

    // Thực thi
    $dbconn->exec($sql);
    echo "Tạo bảng thành công";
}
catch(PDOException $e){
    echo $sql . "<br>" . $e->getMessage();
}
// Ngắt kết nối
$dbconn = null;

 

Tổng kết.

Trong bài hướng dẫn này mình đã hướng dẫn các bạn sử dụng PHP để tạo bảng trong CSDL MySQL. Thực tế ngay nay bạn có thể sử dụng các phần mềm Naticat, MySQL hoặc tool PHPMyAdmin sẽ giúp cho các bạn tạo một bảng trong CSDL MySQL nhanh chóng. Nhưng nếu bạn có ý định xây dựng một hệ thống cài đặt tự động như Woldpress, Joomla, NukeViet... thì câu trên là thực sự cần thiết.

Xem Thêm

Profile photo of adminTheHalfHeart

B.V.T

Sinh ra và lớn nên ở Bắc Giang. Hiện tại thì tôi đang là một lập trình viên tại VietISO. Tôi lập website này với mục đích là bookmark những gì tôi đã đọc qua và mong muốn chia sẻ những gì tôi biết.