在 PHP 中操作 MySQL 資料庫是後端開發的基礎技能。雖然舊版 mysql_* 函數已被棄用(建議改用 PDO 或 MySQLi),但理解其運作流程有助於掌握資料庫交互的核心邏輯。本文將詳細介紹從建立連線、選擇資料庫、執行 SQL 語句,到釋放資源與關閉連線的完整步驟。
使用 mysql_connect() 函數與 MySQL 伺服器建立連線。該函數需要主機名(或 IP)、使用者名稱與密碼三個參數。若連線失敗,可透過 die() 配合 mysql_error() 輸出錯誤訊息並終止腳本。
$con = mysql_connect("主機名或IP", "用戶名", "密碼")
or die("無法連接到資料庫,可能是服務未啟動或帳號密碼錯誤: " . mysql_error());
連線成功後,需使用 mysql_select_db() 指定要操作的資料庫。第二個參數為上一步取得的連線識別資源($con)。同樣建議加上錯誤處理。
$db_selected = mysql_select_db("資料庫名", $con)
or die("資料庫選擇失敗: " . mysql_error());
透過 mysql_query() 在已選擇的資料庫中執行 SQL。常見操作包含查詢、新增、更新、刪除四大類:
$result = mysql_query("SELECT * FROM table_name WHERE condition");
$result = mysql_query("INSERT INTO table_name (col1, col2) VALUES ('val1', 'val2')");
$result = mysql_query("UPDATE table_name SET col1='new_val' WHERE id=1");
$result = mysql_query("DELETE FROM table_name WHERE id=1");
完成資料庫操作後,應呼叫 mysql_free_result() 釋放查詢結果佔用的記憶體,避免長時間執行的腳本導致記憶體洩漏。
mysql_free_result($result);
雖然 PHP 的非持久連線會在腳本結束時自動回收,但在高併發或大型結果集的情況下,建議手動呼叫 mysql_close() 釋放連線資源,提升系統穩定性。
mysql_close($con);
注意:
mysql_*系列函數自 PHP 5.5 起棄用,PHP 7.0 完全移除。現代專案請改用 PDO 或 MySQLi(支援預處理語句、物件導向介面、交易控制等進階功能),以確保安全性與相容性。