mysqli擴充功能允許我們存取MySQL 4.1以上版本提供的功能。
mysqli擴展和持久化連接
mysqli擴展的持久化連接在PHP5.3中被引入。支援已經存在於PDO MYSQL 和ext/mysql。持久化連結背後的想法是客戶端進程和資料庫之間的連接可以透過一個客戶端進程來保持重用, 而不是多次的創建和銷毀。這降低了每次需要建立一個新連線的開銷,未使用的連線被快取起來並且準備隨時被重複使用。
不像mysql擴展,mysqli沒有提供一個特殊的方法來開啟持久化連接。需要開啟一個持久化連線時,你必須在 連線時在主機名稱前增加p:。
使用持久化連線的問題在於它們可能在客戶端處於不可預測的狀態。例如,一個表鎖可能在客戶端意外終止之前就已啟動。 一個新的客戶端程序重用這個持久化連接就會"按照原樣"得到這個連接。這樣,一個新的客戶端進程 為了更好的使用持久化連接,就需要做任何可能的清理工作,這樣就增加了對程式設計師的負擔。
mysqli擴充的持久化連接提供了內建的清理處理程式碼。 mysqli 所做的清理工作包括:
回滾活動的事務
關閉並且刪除臨時表
對表解鎖、
重置會話變數
關閉prepared語句(在PHPPHP)中經常發生)
程序釋放透過 GET_LOCK()獲得的鎖這確保了從連接池返回的持久化連接在客戶端進程使用它之前處於乾淨的狀態。 mysqli擴充透過自動的呼叫C-API函數mysql_change_user() 來完成這個清理工作。 自動清理的特性有優點也有缺點。優點是程式設計師不再需要擔心附加的清理程式碼,因為它們會自動呼叫。然而缺點就是 程式碼可能會潛在的慢一點,因為每次從連線池傳回一個連線都需要執行這些清理程式碼。 這個自動清理的程式碼可以透過在編譯php時定義MYSQLI_NO_CHANGE_USER_ON_PCONNECT 來關閉。 mysqli擴充在使用Mysql Native Driver或Mysql Client Library(libmysql)時都支援持久化連線。 MySQLi類別代表PHP和Mysql資料庫之間的一個連接。 mysqli::$affected_rows — Gets the number of affected rows in a previous MySQL operationmysqli::autocommit — 開啟或關閉本次資料庫連線的自動指令提交事務模式mysqli::change_user — Changes the user of the specified database connectionmysqli::character_set_name — 傳回目前資料庫連線的預設字元編碼my the MySQL client version as a stringmysqli::close — 關閉先前開啟的資料庫連線mysqli::commit — 提交一個事務mysqli::$connect_errno — Returns the error
mysqli::1 :$connect_error — Returns a string description of the last connect error
mysqli::__construct — Open a new connection to the MySQL server
mysqli::debugdm— Performs debugging oper
mysqli::debugdm— Performs debugging operations
日誌mysqli::errno — 傳回最近函數呼叫的錯誤代碼mysqli::$error_list — Returns a list of errors from the last command executedmyi::$errormysqli::$field_count — Returns the number of columns for the most recent query
mysqli::get_charset — Returns a character set object
myinfoi_getclicliclis ::myget_cli; client per-process statistics
mysqli_get_client_version — Returns the MySQL client version as an integer
mysqli::get_connection_stats — Returns statistics about the client connection
. connection
mysqli::$protocol_version — Returns the version of the MySQL protocol used
mysqli::$server_info — Returns the version of the MySQL server
mysqli::$server_version — Returns the version of the Mymyserver ssqli::$server_version — 參考of SHOW WARNINGS
mysqli::$info — Retrieves information about the most recently executed query
mysqli::init — Initializes My_coni and returns a resource for mysqli::init — Initial?
mysqli::$insert_id — 回傳上次查詢中使用的自動產生的id
mysqli::kill — 要求伺服器殺死一個MySQL 執行緒
mysqli::more_results — 檢查是否還有多個查詢的結果query
mysqli::multi_query — 對資料庫執行查詢
mysqli::next_result — 準備multi_query 的下一個結果
mysqli::options — 設定選項
. ,則重新連接mysqli::poll — 輪詢連線mysqli::prepare — 準備要執行的SQL 語句mysqli::query — 對資料庫執行一次查詢mysqli::query — 對資料庫執行一次查詢
my伺服器的連接mysqli::real_escape_string — 轉義字串中的特殊字元以在SQL 語句中使用,同時考慮到連接的目前字元集mysqli::real_query — 執行一個mysql 查詢mysqli::real_query — 執行一個mysql 查詢mysqli::real_query — 執行一個mysql 查詢mysqli::real_query — 執行一個mysql 查詢my — 從非同步查詢取得結果mysqli::refresh — 刷新mysqli::release_savepoint — 將交易回滾到指定的保存點mysqli::rollback — 回退目前交易RPL查詢類型
mysqli::savepoint — 設定命名事務保存點
mysqli::select_db — 選擇資料庫查詢的預設資料庫
mysqli::send_query set—編碼
mysqli::set_local_infile_default — 取消設定用於載入本機infile 指令的使用者定義處理程序
mysqli::set_local_infile_handler — 設定LOAD DATA LOCAL INFILE 指令的回呼函數的回呼函數SQLSTATE 錯誤
mysqli::ssl_set — 用於使用SSL 建立安全連線
mysqli::stat — 取得目前系統狀態
mysqli::stmt_init — 初始化一條語句並傳回一個用於使用一個用於實體的物件的mysqli ::store_result — 傳送上次查詢的結果集
mysqli::$thread_id — 傳回目前連接的執行緒ID
mysqli::thread_safe — 傳回目前連接的執行緒ID
mysqli::thread_safe — 傳回是否是執行緒安全的
的發送mysqli::thread_safe — 傳回一個執行緒安全的集檢索mysqli::$warning_count — 傳回給定連結的最後一個查詢的警告數MySQLi_STMT類別代表一個準備好的語句。 mysqli_stmt::$affected_rows — 傳回已變更的總行數、最後執行的語句刪除或插入mysqli_stmt::attr_get — 用於取得語句屬性的目前值my語句的行為mysqli_stmt::bind_param —將變數作為參數綁定到準備好的語句mysqli_stmt::bind_result — 將變數綁定到準備好的語句以儲存結果::my的語句
mysqli_stmt::data_seek — 尋找語句結果中的任意行set
mysqli_stmt::$errno — 傳回最近語句呼叫的錯誤代碼
mysqli_stmt::$error mysqli_stmt::$error — 傳回以下語句的字串描述最後一個語句錯誤
mysqli_stmt::execute — 執行準備好的查詢
mysqli_stmt::fetch — 從準備好的語句取得結果到綁定變數
🜎 mysqli_stmt::$field_count — 傳回給定語句中的欄位數量 mysqli_stmt::free_result — 釋放給定語句句柄的儲存結果記憶體mysqli_stmt::get_result . :get_warnings — 取得SHOW WARNINGS 的結果mysqli_stmt::$insert_id — 取得上一次INSERT 作業產生的IDmysqli_stmt::more_resultssql:c> 對檢查多重化結果查詢是否有更多讀取結果查詢是否有更多讀取查詢的下一個結果mysqli_stmt::$num_rows — 傳回語句結果集中的行數mysqli_stmt::$param_count — 傳回給定語句的參數數量my mysqli_stmt::reset — 重設準備好的語句mysqli_stmt::result_metadata — 從準備好的語句中傳回結果集元資料mysqli_stmt::send_long_data $state 以區塊的形式傳送資料與區塊的形式發送資料從上一個語句操作傳回SQLSTATE 錯誤mysqli_stmt::store_result — 傳送結果從準備好的宣告設定
mysqli_result 類別
代表從一個資料庫查詢中取得的結果集
mysqli_result::$current_field — 取得結果指標的目前欄位偏移
sqli_result::myFeeks mysqli_result::fetch_all — 以關聯數組、數值數組或兩者的形式取得所有結果行
mysqli_result::fetch_array — 以關聯數組、數值數組或兩者的形式獲取結果行
mysqli_resultfetch_ass關聯陣列的結果行
mysqli_result::fetch_field_direct — 取得單一欄位的元資料
mysqli_result::fetch_field — 傳回結果集中的下一個欄位的元資料
my_resh_result::fetch_res mysqli_result::fetch_object — 將結果集的目前行作為物件傳回mysqli_result::fetch_row — 取得結果行作為枚舉陣列mysqli_result::$field_counteek 月_ 取得數字結果中的欄位結果結果指標設定為指定欄位偏移量mysqli_result::free — 釋放與結果相關的記憶體mysqli_result::$lengths — 傳回結果的資料列的長度結果集中的目前行my_result:: 傳回結果的資料列的長度結果集中的目前行
my結果中的行數MySQLi_Driver類MySQLi驅動程式.client_info客戶端API頭版本(例如:(string)"5.1. 49")_ (int)50149)
driver_versionMysqli驅動版本(如:(int)101009)report_modeSQL提交異常,譯註:需要和MYSQLI_REPORT_ERROR 聯合使用),MYSQLI_REPORT_ERROR(報告MYSQL 錯誤)和MYSQLI_REPORT_INDEX(報告索引相關的錯誤)的任意組合。
mysqli_driver::embedded_server_end — 停止內嵌伺服器
mysqli_driver::embedded_server_start —初始化並啟動嵌入式伺服器
代表一個Mysql警告。
message
訊息字串
sqlstate
SQL狀態
errno__ mysqli_warning::next — 下一個目的mysqli_sql_exception類別mysqli 異常處理類別
mysqli_sql_exception extends RuntimeException { /* 属性 */ protected string $sqlstate ; /* 继承的属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; }
coding — mysqli_character_set_name 的別名
mysqli_connect — mysqli::__constructmysqli:: disable_reads_from_master — 停用從master 讀取
mysqli_fetch — mysqli_stmt_fetch 的別名。
mysqli_get _cache_stats — 回傳客戶端Zval 伺服器統計資料
mysqli_get_metadata — mysqli_stmt_result_metadata 的別名
my_master_queque_result_meta數據_stmt_param_count 的別名
mysqli_report — 開啟或停用(Mysql)內部(錯誤)報告函數
mysqli_rpl_parse_enabled — 檢查函數
mysqli_rpl_parse_enabled — 檢查是否開啟了RPL解析
mysqli_rpl_probe — RPL 探測
mysql_send_long_pis_mend_m_prost 的名稱) — mysqli_options 的別名
mysqli_slave_fromquery — 在主/機制中強制在從機上執行一個查詢