PHP MySQL Tạo bảng
Một bảng cơ sở dữ liệu có tên riêng của nó 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ú trong 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 kiểu dữ liệu có sẵn, hãy truy cập tài liệu tham khảo 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:
- NOT NULL - Mỗi hàng phải chứa một giá trị cho cột đó, giá trị rỗng không được phép
- Giá trị DEFAULT - Đặt giá trị mặc định được thêm vào 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 khi một bản ghi mới được thêm vào
- 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 là 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;
?>