Bảng tạo PHP MySQL
Một bảng cơ sở dữ liệu có tên duy nhất và bao gồm các cột và hàng.
Tạo bảng MySQL bằng MySQLi và PDO
Câu lệnh CREATE TABLE được sử dụng để tạo bảng trong MySQL.
Chúng tôi sẽ tạo một bảng có tên "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 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Ghi chú ở bảng trên:
Kiểu dữ liệu chỉ định loại dữ liệu mà cột có thể chứa. Để có tài liệu tham khảo đầy đủ về tất cả các loại dữ liệu có sẵn, hãy truy cập tài liệu tham khảo về Loại dữ liệu của chúng tôi.
Sau kiểu 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:
- KHÔNG NULL - Mỗi hàng phải chứa một giá trị cho cột đó, không được phép có giá trị null
- Giá trị DEFAULT - Đặt giá trị mặc định được thêm khi không có giá trị nào khác được chuyển
- UNSIGNED - Được sử dụng cho các loại số, giới hạn dữ liệu được lưu trữ ở số dương và số 0
- TĂNG TỰ ĐỘNG - MySQL tự động tăng giá trị của trường lên 1 mỗi lần thêm bản ghi mới
- KHÓA CHÍNH - Được sử dụng để xác định duy nhất các hàng trong bảng. Cột có cài đặt PRIMARY KEY thường là số ID và thường được sử dụng với AUTO_INCREMENT
Mỗi bảng phải có một cột khóa chính (trong trường hợp này: cột "id"). Giá trị của nó phải là duy nhất cho mỗi bản ghi trong bảng.
Các ví dụ sau đây cho thấy cách tạo bảng trong PHP:
Ví dụ (MySQLi hướng đối tượng)
<?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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
Ví dụ (Thủ tục MySQLi)
<?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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Ví dụ (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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_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;
?>