PHP – Tạo các bảng MySQL

Một bảng cơ sở dữ liệu có tên riêng, duy nhất gồm các cột và các hàng.

Tạo một bảng MySQL bằng cách sử dụng MySQLi và PDO.

Câu lệnh CREATE TABLE được sử dụng để tạo một bảng trong MySQL.

Chúng tôi sẽ tạo một bảng có tên là “MyGuests”, với năm cột: “id”, “firstname”, “lastname”, “email” và “reg_date”:

CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)

Trong đó

Kiểu dữ liệu xác định loại dữ liệu mà cột có thể chứa.

Sau kiểu dữ liệu, bạn có thể chỉ định các thuộc tính khác cho từng 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 value : Set giá trị mặc định khi không có giá trị nào đc truyền vào.
  • UNSIGNED : Được sử dụng cho các kiểu số, giới hạn dữ liệu được lưu trữ đến số dương và số không
  • AUTO INCREMENT : MySQL tự động tăng lên 1 khi record được thêm vào.
  • PRIMARY KEY : Được sử dụng để xác định khóa chính một bảng. Cột có cài đặt PRIMARY KEY thường là số ID và sử dụng với AUTO_INCREMENT.

Mỗi bảng phải có cột primary key (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 record trong bảng.

MySQLi Object-oriented

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . $conn->error;
}

$conn->close();
?>

MySQLi Procedural

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// sql to create table
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";

if (mysqli_query($conn, $sql)) {
    echo "Table MyGuests created successfully";
} else {
    echo "Error creating table: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

PDO

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // sql to create table
    $sql = "CREATE TABLE MyGuests (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    )";

    // use exec() because no results are returned
    $conn->exec($sql);
    echo "Table MyGuests created successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>