$link = mysql_connect('localhost', 'root', '')
or die('連線失敗: ' . mysql_error());
腳本結束自動關閉。注意: PHP 5.5.0 棄用,7.0.0 移除,建議改用 mysqli 或 PDO。
$link = mysql_pconnect('localhost', 'root', '')
or die('連線失敗: ' . mysql_error());
連線不隨腳本結束關閉,下次請求可重用,減少握手開銷。同樣已棄用。
mysql_select_db('example', $link)
or die('無法選擇資料庫: ' . mysql_error());
mysql_close($link);
$result = mysql_query('SELECT * FROM users', $link);
回傳 resource(SELECT/SHOW/DESCRIBE/EXPLAIN)或 boolean(INSERT/UPDATE/DELETE/DDL)。
$num = mysql_num_rows($result);
echo "找到 {$num} 筆記錄";
僅適用 SELECT 結果集。INSERT/UPDATE/DELETE 影響行數請用 mysql_affected_rows。
mysql_query('DELETE FROM users WHERE id < 10');
echo "刪除了 " . mysql_affected_rows() . " 行";
必須緊接在對應 mysql_query 之後呼叫。
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
echo "id={$row[0]}, name={$row['name']}";
}
MYSQL_ASSOC 關聯索引、MYSQL_NUM 數字索引、MYSQL_BOTH 兩者皆有(預設)。
echo mysql_error($link);
mysql_query("INSERT INTO users (name) VALUES ('kossu')");
echo "最後插入 ID: " . mysql_insert_id();
class SimpleMySQL {
private $link;
public function __construct($host, $user, $pass, $db) {
$this->link = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db($db, $this->link) or die(mysql_error());
mysql_query("SET NAMES utf8", $this->link);
}
public function query($sql) {
$res = mysql_query($sql, $this->link);
if (!$res) die('SQL錯誤: ' . mysql_error($this->link) . ' [' . $sql . ']');
return $res;
}
public function fetchAll($sql) {
$res = $this->query($sql);
$rows = [];
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) $rows[] = $row;
return $rows;
}
public function insert($sql) {
$this->query($sql);
return mysql_insert_id($this->link);
}
public function __destruct() {
if ($this->link) mysql_close($this->link);
}
}
重要提醒: mysql_* 系列函數已從 PHP 7 移除,新專案請直接使用 PDO 或 mysqli(支援預處理語句、事務、物件導向介面),避免 SQL 注入與相容性問題。