PHP MySQL 建立表

在本教程中,你將學習如何使用 PHP 在 MySQL 資料庫中建立表。

使用 PHP 在 MySQL 資料庫中建立表

在上一章中,我們學習瞭如何在 MySQL 伺服器上建立資料庫。現在是時候在資料庫中建立一些實際儲存資料的表。表格將資訊組織成行和列。

SQL 語句CREATE TABLE用於在資料庫中建立表格。

讓我們使用該 CREATE TABLE 語句進行 SQL 查詢,之後我們將通過將其傳遞給 PHP mysqli_query() 函式來執行此 SQL 查詢,最終建立我們的表。

程序導向式建立表格

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "demo");
 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Attempt create table query execution
$sql = "CREATE TABLE persons(
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(30) NOT NULL,
    last_name VARCHAR(30) NOT NULL,
    email VARCHAR(70) NOT NULL UNIQUE
)";
if(mysqli_query($link, $sql)){
    echo "Table created successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
 
// Close connection
mysqli_close($link);
?>

物件導向式建立表格

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);
}
 
// Attempt create table query execution
$sql = "CREATE TABLE persons(
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(30) NOT NULL,
    last_name VARCHAR(30) NOT NULL,
    email VARCHAR(70) NOT NULL UNIQUE
)";
if($mysqli->query($sql) === true){
    echo "Table created successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . $mysqli->error;
}
 
// Close connection
$mysqli->close();
?>

PDO 式建立表格

<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    // Set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("ERROR: Could not connect. " . $e->getMessage());
}
 
// Attempt create table query execution
try{
    $sql = "CREATE TABLE persons(
        id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        first_name VARCHAR(30) NOT NULL,
        last_name VARCHAR(30) NOT NULL,
        email VARCHAR(70) NOT NULL UNIQUE
    )";    
    $pdo->exec($sql);
    echo "Table created successfully.";
} catch(PDOException $e){
    die("ERROR: Could not able to execute $sql. " . $e->getMessage());
}
 
// Close connection
unset($pdo);
?>

在上面的例子中的 PHP 程式碼在 demo 資料庫裡建立了一個名為 persons 的表格,它有四列 IDFIRST_NAMElast_nameemail

請注意,每個欄位名稱後跟一個資料型別宣告; 此宣告指定列可以容納的資料型別,無論是整數,字串,日期等。

也有一些額外的限制(也稱為修飾符)是在前面的 SQL 語句中的列名之後指定,如 NOT NULLPRIMARY KEYAUTO_INCREMENT ,它們約束定義關於允許列中的值的規則。

有關語法的詳細資訊,以及 MySQL 資料庫系統中可用的資料型別和約束,請檢視 SQL CREATE TABLE 語句 教程。

注意: 如果換行符沒有打斷關鍵字,值,表示式等,則 SQL 語句中可能會出現任意數量的換行符。

提示: 設定 PDO::ATTR_ERRMODE 屬性為 PDO::ERRMODE_EXCEPTION 來告知 PDO 在發生資料庫錯誤時丟擲異常。