介紹如何在 PHP 中使用 MySQLi 連接 MySQL 或 MariaDB 資料庫,進行各種資料庫操作。
這裡整理了各種使用 MySQLi 連接 MySQL 或 MariaDB 資料庫,進行各種操作的程式碼範例。
CREATE TABLE
建立資料表
以下是一個建立資料表的簡單範例:
<?php $server = "localhost"; # MySQL/MariaDB 伺服器 $dbuser = "officeguide"; # 使用者帳號 $dbpassword = "your_password"; # 使用者密碼 $dbname = "officeguide_db"; # 資料庫名稱 # 連接 MySQL/MariaDB 資料庫 $connection = new mysqli($server, $dbuser, $dbpassword, $dbname); # 檢查連線是否成功 if ($connection->connect_error) { die("連線失敗:" . $connection->connect_error); } # MySQL/MariaDB 指令 $sqlQuery = "CREATE TABLE user_table ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT UNSIGNED)"; # 執行 MySQL/MariaDB 指令 if ($connection->query($sqlQuery) === TRUE) { echo "成功建立資料表。"; } else { echo "執行失敗:" . $connection->error; } # 關閉 MySQL/MariaDB 連線 $connection->close(); ?>
INSERT
新增資料
以下是一個以 INSERT
新增資料的範例,它跟建立資料表的方法幾乎一樣,只是如果資料表中含有 AUTO_INCREMENT
屬性的 ID 欄位,可以直接用 $connection->insert_id
取得此筆資料的 ID,這個小功能在許多情況下非常好用。
<?php $server = "localhost"; # MySQL/MariaDB 伺服器 $dbuser = "officeguide"; # 使用者帳號 $dbpassword = "your_password"; # 使用者密碼 $dbname = "officeguide_db"; # 資料庫名稱 # 連接 MySQL/MariaDB 資料庫 $connection = new mysqli($server, $dbuser, $dbpassword, $dbname); # 檢查連線是否成功 if ($connection->connect_error) { die("連線失敗:" . $connection->connect_error); } # MySQL/MariaDB 指令 $sqlQuery = "INSERT INTO user_table (name, age) VALUES ('John', 23)"; # 執行 MySQL/MariaDB 指令 if ($connection->query($sqlQuery) === TRUE) { # 若有 AUTO_INCREMENT 的 ID 欄位,可直接取得此筆資料的 ID $last_id = $connection->insert_id; echo "成功新增資料,新資料 ID:" . $last_id; } else { echo "執行失敗:" . $connection->error; } # 關閉 MySQL/MariaDB 連線 $connection->close(); ?>
SELECT
查詢資料
以下是使用 SELECT
查詢資料的範例:
<?php $server = "localhost"; # MySQL/MariaDB 伺服器 $dbuser = "officeguide"; # 使用者帳號 $dbpassword = "your_password"; # 使用者密碼 $dbname = "officeguide_db"; # 資料庫名稱 # 連接 MySQL/MariaDB 資料庫 $connection = new mysqli($server, $dbuser, $dbpassword, $dbname); # 檢查連線是否成功 if ($connection->connect_error) { die("連線失敗:" . $connection->connect_error); } # MySQL/MariaDB 指令 $sqlQuery = "SELECT name, age FROM user_table WHERE id = 4;"; # 執行 MySQL/MariaDB 指令 if ($result = $connection->query($sqlQuery)) { # 取得結果 while ($row = $result->fetch_row()) { printf ("%s:%d\n", $row[0], $row[1]); } # 釋放資源 $result->close(); } else { echo "執行失敗:" . $connection->error; } # 關閉 MySQL/MariaDB 連線 $connection->close(); ?>
UPDATE
更新資料
這是使用 UPDATE
更新資料的範例:
<?php $server = "localhost"; # MySQL/MariaDB 伺服器 $dbuser = "officeguide"; # 使用者帳號 $dbpassword = "your_password"; # 使用者密碼 $dbname = "officeguide_db"; # 資料庫名稱 # 連接 MySQL/MariaDB 資料庫 $connection = new mysqli($server, $dbuser, $dbpassword, $dbname); # 檢查連線是否成功 if ($connection->connect_error) { die("連線失敗:" . $connection->connect_error); } # MySQL/MariaDB 指令 $sqlQuery = "UPDATE user_table SET age = 31 WHERE id = 4"; # 執行 MySQL/MariaDB 指令 if ($connection->query($sqlQuery) === TRUE) { echo "成功更新資料。"; } else { echo "執行失敗:" . $connection->error; } # 關閉 MySQL/MariaDB 連線 $connection->close(); ?>
DELETE
刪除資料
這是使用 DELETE
刪除資料的範例:
<?php $server = "localhost"; # MySQL/MariaDB 伺服器 $dbuser = "officeguide"; # 使用者帳號 $dbpassword = "your_password"; # 使用者密碼 $dbname = "officeguide_db"; # 資料庫名稱 # 連接 MySQL/MariaDB 資料庫 $connection = new mysqli($server, $dbuser, $dbpassword, $dbname); # 檢查連線是否成功 if ($connection->connect_error) { die("連線失敗:" . $connection->connect_error); } # MySQL/MariaDB 指令 $sqlQuery = "DELETE FROM user_table WHERE id = 4"; # 執行 MySQL/MariaDB 指令 if ($connection->query($sqlQuery) === TRUE) { echo "成功刪除資料。"; } else { echo "執行失敗:" . $connection->error; } # 關閉 MySQL/MariaDB 連線 $connection->close(); ?>
參考資料:w3schools.com