直接呼叫 mysql_* 函數族,效能最高、功能最全、社群支援最佳。
| 分類 | 代表函數 |
|---|---|
| 連線管理 | mysql_connect、mysql_pconnect、mysql_close |
| 資料庫操作 | mysql_select_db、mysql_query、mysql_db_query |
| 結果集處理 | mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_row、mysql_fetch_object、mysql_num_rows、mysql_free_result |
| 錯誤處理 | mysql_errno、mysql_error |
| 欄位中繼資料 | mysql_field_name、mysql_field_type、mysql_field_len、mysql_field_flags |
| 事務控制 | mysql_query("BEGIN")、mysql_query("COMMIT")、mysql_query("ROLLBACK") |
適用於**多資料庫抽象層**需求,但效能較低、功能受限於 ODBC 規範。
odbc_connect、odbc_pconnect、odbc_closeodbc_exec、odbc_prepare+odbc_execute、odbc_doodbc_fetch_row、odbc_fetch_into、odbc_result、odbc_result_all(直接輸出 HTML 表格)odbc_commit、odbc_rollback、odbc_autocommit
$conn = mysql_connect('localhost:3306', 'root', '');
mysql_select_db('HBWEB');
$sql = "INSERT INTO usemsg (name, usermail, userurl, sitename, company, phone)
VALUES ('$name', '$usermail', '$userurl', '$sitename', '$company', '$phone')";
$result = mysql_query($sql);
if (mysql_error()) {
echo "錯誤: " . mysql_error();
} else {
echo "成功入庫";
}
CREATE TABLE usemsg (
name VARCHAR(255) NOT NULL DEFAULT 'notname',
usermail VARCHAR(255) NOT NULL DEFAULT 'notusermail',
userurl VARCHAR(255) NOT NULL DEFAULT 'notuserurl',
sitename VARCHAR(255) NOT NULL DEFAULT 'notsitename',
company VARCHAR(255) NOT NULL DEFAULT 'notcompany',
phone VARCHAR(255) NOT NULL DEFAULT 'notphone'
);
mysqli/PDO_MySQL),效能與功能雙贏。mysql_* 已棄用(PHP 7.0 移除),新專案請直接使用 mysqli(物件導向/程序雙介面)或 PDO。