MySQLi = MySQL Improved。MySQLi 擴展提供了改進的、物件導向與程序式介面,用於存取 MySQL 4.1.13 或更新版本的資料庫伺服器。
編譯 PHP 時需加入 --with-mysqli 選項。PHP 5.0.0 引入,PHP 5.3.0 內建 MySQL Native Driver (mysqlnd)。詳細安裝請參考 官方文檔。
| 函數 | 說明 |
|---|---|
mysqli_connect() | 開啟新的 MySQL 伺服器連接(程序式)。 |
mysqli_real_connect() | 開啟新連接(支援更多選項)。 |
mysqli_close() | 關閉先前開啟的連接。 |
mysqli_query() | 執行針對資料庫的查詢。 |
mysqli_prepare() | 準備執行 SQL 語句(預處理)。 |
mysqli_stmt_bind_param() | 綁定參數到預處理語句。 |
mysqli_stmt_execute() | 執行預處理語句。 |
mysqli_fetch_assoc() | 取得一行作為關聯陣列。 |
mysqli_fetch_array() | 取得一行作為關聯、數字或兩者兼有的陣列。 |
mysqli_fetch_all() | 取得所有行(PHP 5.3+)。 |
mysqli_num_rows() | 返回結果集行數。 |
mysqli_affected_rows() | 返回前一次操作影響的行數。 |
mysqli_insert_id() | 返回最後查詢自動生成的 ID。 |
mysqli_real_escape_string() | 轉義 SQL 字符串中的特殊字符。 |
mysqli_autocommit() | 開啟/關閉自動提交。 |
mysqli_commit() | 提交事務。 |
mysqli_rollback() | 回滾事務。 |
mysqli_error() | 返回最後錯誤描述。 |
mysqli_errno() | 返回最後錯誤代碼。 |
mysqli_set_charset() | 設定預設客戶端字符集。 |
mysqli_multi_query() | 執行多條查詢。 |
mysqli_next_result() | 準備多查詢的下一個結果集。 |
mysqli_free_result() | 釋放結果記憶體。 |
mysqli_ping() | 檢查連接,若斷開嘗試重連。 |
mysqli_ssl_set() | 建立 SSL 安全連接。 |
mysqli_get_client_info() | 返回 MySQL 客戶端庫版本。 |
mysqli_get_server_info() | 返回 MySQL 伺服器版本。 |
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
die("連接失敗: " . $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT id, name FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['name'] . '<br>';
}
$stmt->close();
$mysqli->close();
?>
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT) 讓錯誤拋出異常。