在本教程中,您將學習如何使用PHP在MySQL數(shù)據(jù)庫中創(chuàng)建表。
在上一章中,我們學習了如何在MySQL服務器上創(chuàng)建數(shù)據(jù)庫?,F(xiàn)在是時候在數(shù)據(jù)庫內部創(chuàng)建一些表,這些表實際上將保存數(shù)據(jù)。表格將信息組織成行和列。
SQL CREATE TABLE語句用于在數(shù)據(jù)庫中創(chuàng)建表。
讓我們使用該CREATE TABLE語句進行SQL查詢,此后,我們將通過將其傳遞給PHP mysqli_query()函數(shù)以最終創(chuàng)建表來執(zhí)行此SQL查詢。
<?php /* 嘗試MySQL服務器連接。 假設您正在運行MySQL。 具有默認設置的服務器(沒有密碼的用戶“root”) */ $link = mysqli_connect("localhost", "root", ""); // 檢查連接 if($link === false){ die("錯誤:無法連接。" . mysqli_connect_error()); } //嘗試執(zhí)行CREATE TABLE查詢執(zhí)行 $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 "已成功創(chuàng)建表。"; } else{ echo "錯誤:無法執(zhí)行 $sql. " . mysqli_error($link); } //關閉連接 mysqli_close($link); ?>
<?php /* 嘗試MySQL服務器連接。 假設您正在運行MySQL。 具有默認設置的服務器(沒有密碼的用戶“root”) */ $mysqli = new mysqli("localhost", "root", "", "demo"); // 檢查連接 if($mysqli === false){ die("錯誤:無法連接。 " . $mysqli->connect_error); } //嘗試執(zhí)行CREATE TABLE查詢執(zhí)行 $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 "表創(chuàng)建成功。"; } else{ echo "錯誤:無法執(zhí)行 $sql. " . $mysqli->error; } // 關閉連接 $mysqli->close(); ?>
<?php /* 嘗試MySQL服務器連接。 假設您正在運行MySQL。 具有默認設置的服務器(沒有密碼的用戶“root”) */ try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //將PDO錯誤模式設置為異常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("錯誤:無法連接。 " . $e->getMessage()); } //嘗試執(zhí)行CREATE TABLE查詢執(zhí)行 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 "已成功創(chuàng)建表。"; } catch(PDOException $e){ die("錯誤:無法執(zhí)行 $sql. " . $e->getMessage()); } //關閉連接 unset($pdo); ?>
上例中的PHP代碼在演示數(shù)據(jù)庫中創(chuàng)建了一個名為person的表,該表具有id,first_name,last_name和email四列。
注意,每個字段名稱后都有一個數(shù)據(jù)類型聲明; 該聲明指定列可以保存的數(shù)據(jù)類型,整數(shù),字符串,日期等。
在前面的SQL語句中,在列名之后指定了一些附加約束(也稱為修飾符),如NOT NULL、PRIMARY KEY、AUTO_INCREMENT等。約束定義有關列中允許的值的規(guī)則。
請查看有關SQL CREATE TABLE語句的教程,以獲取有關語法以及MySQL數(shù)據(jù)庫系統(tǒng)中可用數(shù)據(jù)類型和約束的詳細信息。
注意: SQL語句中可以出現(xiàn)任意數(shù)量的換行符,前提是任何換行符都不會中斷關鍵字、值、表達式等。