| 函數 | 說明 | 關鍵點 |
|---|---|---|
| mysql_connect() | 建立非持久連接 | 參數:host:port、user、pass;返回連接標識;失敗可用 @ 抑制錯誤配合 die() |
| mysql_pconnect() | 持久連接(連接池) | 不需 mysql_close();高併發慎用(連接數耗盡風險) |
| mysql_close() | 關閉連接 | 非必須(請求結束自動回收);可指定 link_id |
mysql_select_db('db_name', $link);
mysql_query($sql, $link):通用執行,返回結果集資源(SELECT)或布爾值(INSERT/UPDATE/DELETE)。mysql_db_query($db, $sql, $link):等同 select_db + query,已棄用。| 函數 | 返回類型 | 特點 |
|---|---|---|
| mysql_result($res, $row, $field) | 單值 | 效率低,僅適合單值提取 |
| mysql_fetch_row($res) | 數值索引陣列 | 配合 list() 解包 |
| mysql_fetch_array($res, $type) | 雙索引/關聯/両方 | $type: MYSQL_ASSOC/MYSQL_NUM/MYSQL_BOTH |
| mysql_fetch_assoc($res) | 關聯陣列 | 等同 MYSQL_ASSOC |
| mysql_fetch_object($res) | 物件 | 屬性名=欄位名 |
while ($row = mysql_fetch_assoc($result)) {
echo $row['name'] . ' - ' . $row['email'] . '
';
}
mysql_num_rows($res):SELECT 返回行數。mysql_affected_rows($link):INSERT/UPDATE/DELETE 影響行數。mysql_list_dbs($link) + mysql_db_name($res, $i):列舉數據庫。mysql_list_tables($db, $link) + mysql_tablename($res, $i):列舉表。mysql_query('BEGIN'); // 或 SET AUTOCOMMIT=0
try {
mysql_query('INSERT ...');
mysql_query('UPDATE ...');
mysql_query('COMMIT');
} catch (Exception $e) {
mysql_query('ROLLBACK');
}
注意:mysql_* 函數無原生事務函數,需直接執行 SQL。
<?php
$conn = new COM("ADODB.Connection") or die("Cannot start ADODB");
$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\path\\db.mdb");
$rs = $conn->Execute("SELECT * FROM manage");
$cols = $rs->Fields->Count();
while (!$rs->EOF) {
for ($i=0; $i<$cols; $i++) {
echo htmlspecialchars($rs->Fields($i)->value) . "\t";
}
echo "
";
$rs->MoveNext();
}
$rs->Close(); $conn->Close();
?>
需 Windows + 啟用 COM 擴展 + 安裝 Access 驅動。
mysql_real_escape_string()(舊代碼維護)。mysql_query("SET NAMES utf8")(或 utf8mb4)。error_reporting(E_ALL),生產環境記錄日誌而非顯示。