首頁  >  文章  >  資料庫  >  php擴充MySQLi

php擴充MySQLi

伊谢尔伦
伊谢尔伦原創
2016-11-22 09:25:001387瀏覽

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 operation

mysqli::autocommit — 開啟或關閉本次資料庫連線的自動指令提交事務模式

mysqli::change_user — Changes the user of the specified database connection

mysqli::character_set_name — 傳回目前資料庫連線的預設字元編碼

my the MySQL client version as a string

mysqli::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 executed

myi::$error 

mysqli::$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 作業產生的ID

mysqli_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_version

Mysqli驅動版本(如:(int)101009)


emb ededSQLded


重新連接

允許或阻止重連(連接查看INI指令中的mysqli.reconnect)


report_mode

report_modeSQL提交異常,譯註:需要和MYSQLI_REPORT_ERROR 聯合使用),MYSQLI_REPORT_ERROR(報告MYSQL 錯誤)和MYSQLI_REPORT_INDEX(報告索引相關的錯誤)的任意組合。

mysqli_driver::embedded_server_end — 停止內嵌伺服器

mysqli_driver::embedded_server_start —初始化並啟動嵌入式伺服器

mysqli_L_drih_LDamuoo

代表一個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 ;
}
別名和過時的Mysqli函數
mysqli_bind_param — mysqli_stmt_bind_param 的別名

mysqlisqli_stuple_bind_param 的別名

coding — mysqli_character_set_name 的別名

mysqli_connect — mysqli::__constructmysqli:: disable_reads_from_master — 停用從master 讀取

mysqli_disable_rpl_parse — 取消RPL 解析

mysqli_enable_reads_from_master ing — 別名mysqli_real_escape_string

mysqli_execute — mysqli_stmt_execute 的別名

mysqli_fetch — mysqli_stmt_fetch 的別名

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 — 在主/機制中強制在從機上執行一個查詢

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn