首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 建立 MySQL 資料表完整範例與錯誤處理

     編輯:PHP 相關知識

前言

在 PHP 中建立 MySQL 資料表是資料庫操作的基礎。本文示範使用 mysqli 物件導向風格,包含連線、選擇資料庫、建立資料表、錯誤處理與列出現有資料表。

1. 資料庫連線設定

<?php
$host = 'localhost';
$user = 'root';
$pass = 'your_password';
$dbname = 'base2';

$mysqli = new mysqli($host, $user, $pass);
if ($mysqli->connect_errno) {
    die("連線失敗: " . $mysqli->connect_error);
}
echo "成功連線到伺服器<br>";

if (!$mysqli->select_db($dbname)) {
    die("選擇資料庫失敗: " . $mysqli->error);
}
echo "成功選擇資料庫 $dbname<br>";
?>

2. 建立資料表 SQL

使用 CREATE TABLE IF NOT EXISTS 避免重複建立錯誤,並定義主鍵與欄位屬性:

<?php
$sql = "CREATE TABLE IF NOT EXISTS `t1` (
    `id` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(12) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";

if ($mysqli->query($sql)) {
    echo "資料表 t1 建立成功或已存在<br>";
} else {
    echo "建立失敗: " . $mysqli->error . "<br>";
}
?>

3. 列出目前資料庫所有資料表

<?php
echo "目前 $dbname 資料庫上的資料表:<br>";
$result = $mysqli->query("SHOW TABLES");
if ($result) {
    while ($row = $result->fetch_row()) {
        echo htmlspecialchars($row[0]) . "<br>";
    }
    $result->free();
} else {
    echo "查詢失敗: " . $mysqli->error;
}
$mysqli->close();
?>

完整程式碼整合

<?php
$host = 'localhost';
$user = 'root';
$pass = 'your_password';
$dbname = 'base2';

$mysqli = new mysqli($host, $user, $pass);
if ($mysqli->connect_errno) {
    die("連線失敗: " . $mysqli->connect_error);
}

if (!$mysqli->select_db($dbname)) {
    die("選擇資料庫失敗: " . $mysqli->error);
}

$sql = "CREATE TABLE IF NOT EXISTS `t1` (
    `id` INT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(12) NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;";

if ($mysqli->query($sql)) {
    echo "資料表 t1 建立成功或已存在<br>";
} else {
    echo "建立失敗: " . $mysqli->error . "<br>";
}

echo "目前 $dbname 資料庫上的資料表:<br>";
$result = $mysqli->query("SHOW TABLES");
if ($result) {
    while ($row = $result->fetch_row()) {
        echo htmlspecialchars($row[0]) . "<br>";
    }
    $result->free();
}

$mysqli->close();
?>

關鍵點總結

  • 使用 mysqli 取代已移除的 mysql 擴展。
  • 啟用錯誤報告:mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 可拋出例外。
  • SQL 字串建議使用預備語句防止注入,雖然 DDL 通常不需參數綁定。
  • 指定 ENGINE=InnoDB 與 CHARSET=utf8mb4 確保交易支援與完整 Unicode。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved