本文展示使用已淘汰的 mysql_* 函式庫進行資料庫查詢的基本流程。注意:PHP 7.0+ 已移除此擴充套件,新專案請改用 MySQLi 或 PDO。
<?php
// 1. 建立連線
$conn = mysql_connect("127.0.0.1", "root", "root");
if (!$conn) {
die("連線失敗: " . mysql_error());
}
// 2. 選擇資料庫
mysql_select_db("tools", $conn);
// 3. 執行查詢
$result = mysql_query("SELECT * FROM admin");
if (!$result) {
die("查詢錯誤: " . mysql_error());
}
// 4. 遍歷結果集
while ($row = mysql_fetch_array($result)) {
echo $row["name"] . " " . $row["pass"] . "<br>";
}
// 5. 釋放資源與關閉連線
mysql_free_result($result);
mysql_close($conn);
?>
| 函式 | 用途 | 備註 |
|---|---|---|
| mysql_connect() | 建立資料庫連線 | 回傳連線識別資源 |
| mysql_select_db() | 選擇預設資料庫 | 後續查詢無需指定資料庫名 |
| mysql_query() | 執行 SQL 語句 | SELECT 回傳結果集資源,其他回傳布林值 |
| mysql_fetch_array() | 取得下一列關聯/數值陣列 | 亦可用 mysql_fetch_assoc() 僅取關聯陣列 |
| mysql_free_result() | 釋放結果集佔用記憶體 | 大量資料查詢後建議呼叫 |
| mysql_close() | 關閉資料庫連線 | 腳本結束會自動關閉,明確呼叫較佳 |
<?php
$mysqli = new mysqli("127.0.0.1", "root", "root", "tools");
if ($mysqli->connect_errno) {
die("連線失敗: " . $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT name, pass FROM admin");
$stmt->execute();
$stmt->bind_result($name, $pass);
while ($stmt->fetch()) {
echo htmlspecialchars($name) . " " . htmlspecialchars($pass) . "<br>";
}
$stmt->close();
$mysqli->close();
?>
最佳實務:所有使用者輸入參數化、錯誤處理機制化、連線資訊設定檔化、敏感資料輸出時轉義。