在 PHP 中建立 MySQL 資料表是資料庫操作的基礎。本文示範使用 mysqli 物件導向風格,包含連線、選擇資料庫、建立資料表、錯誤處理與列出現有資料表。
<?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>";
?>
使用 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>";
}
?>
<?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); 可拋出例外。ENGINE=InnoDB 與 CHARSET=utf8mb4 確保交易支援與完整 Unicode。