Heim >Datenbank >MySQL-Tutorial >PHP-Erweiterung MySQLi

PHP-Erweiterung MySQLi

伊谢尔伦
伊谢尔伦Original
2016-11-22 09:25:001412Durchsuche

Die MySQLi-Erweiterung ermöglicht uns den Zugriff auf die von MySQL 4.1 und höher bereitgestellten Funktionen.

MySQL-Erweiterung und dauerhafte Verbindung

Die dauerhafte Verbindung der MySQL-Erweiterung wurde in PHP5.3 eingeführt. Unterstützung gibt es bereits in PDO MYSQL und ext/mysql. Die Idee hinter dauerhaften Verbindungen besteht darin, dass die Verbindung zwischen dem Clientprozess und der Datenbank über einen Clientprozess aufrechterhalten und wiederverwendet werden kann, anstatt mehrmals erstellt und zerstört zu werden. Dies reduziert den Aufwand, der entsteht, wenn jedes Mal eine neue Verbindung erstellt werden muss, und ungenutzte Verbindungen werden zwischengespeichert und können wiederverwendet werden.

Im Gegensatz zur MySQL-Erweiterung bietet MySQL keine spezielle Methode zum Öffnen einer dauerhaften Verbindung. Wenn Sie eine dauerhafte Verbindung herstellen müssen, müssen Sie beim Herstellen der Verbindung p: vor dem Hostnamen hinzufügen.

Das Problem bei der Verwendung dauerhafter Verbindungen besteht darin, dass sie sich auf der Clientseite in einem unvorhersehbaren Zustand befinden können. Beispielsweise könnte eine Tabellensperre aktiviert werden, bevor der Client unerwartet beendet wird. Ein neuer Clientprozess, der die dauerhafte Verbindung wiederverwendet, erhält die Verbindung „wie sie ist“. Auf diese Weise muss ein neuer Client-Prozess alle möglichen Aufräumarbeiten durchführen, um dauerhafte Verbindungen besser zu nutzen, was die Belastung für den Programmierer erhöht.

Die dauerhafte Verbindung der MySQLi-Erweiterung bietet integrierten Bereinigungsverarbeitungscode. Die von mysqli durchgeführte Bereinigungsarbeit umfasst:

Rollback aktiver Transaktionen

Schließen und Löschen der temporären Tabelle

Entsperren der Tabelle,

Sitzungsvariablen zurücksetzen

Vorbereitete Anweisung schließen (kommt häufig in PHP vor)

Handler schließen

Die über GET_LOCK() erworbene Sperre freigeben

Dadurch wird sichergestellt, dass die Verbindung A dauerhaft ist Die vom Pool zurückgegebene Verbindung befindet sich in einem sauberen Zustand, bevor der Clientprozess sie verwendet.

Die mysqli-Erweiterung schließt diese Aufräumarbeiten ab, indem sie automatisch die C-API-Funktion mysql_change_user() aufruft.

Die automatische Reinigungsfunktion hat Vor- und Nachteile. Der Vorteil besteht darin, dass sich Programmierer nicht mehr um zusätzlichen Bereinigungscode kümmern müssen, da dieser automatisch aufgerufen wird. Der Nachteil besteht jedoch darin, dass der Code möglicherweise langsamer ist, da der Bereinigungscode jedes Mal ausgeführt werden muss, wenn eine Verbindung aus dem Verbindungspool zurückgegeben wird.

Dieser automatische Reinigungscode kann durch die Definition von MYSQLI_NO_CHANGE_USER_ON_PCONNECT beim Kompilieren von PHP deaktiviert werden.

Mysqli-Erweiterung unterstützt dauerhafte Verbindungen bei Verwendung von Mysql Native Driver oder Mysql Client Library (libmysql).

MySQLi-Klasse

stellt eine Verbindung zwischen PHP und der MySQL-Datenbank dar.

mysqli::$affected_rows – Ruft die Anzahl der betroffenen Zeilen in einem vorherigen MySQL-Vorgang ab

mysqli::autocommit – Schaltet den automatischen Befehls-Commit-Transaktionsmodus dieser Datenbankverbindung ein oder aus

mysqli::begin_transaction – Startet eine Transaktion

mysqli::change_user – Ändert den Benutzer der angegebenen Datenbankverbindung

mysqli::character_set_name – Gibt die Standardzeichenkodierung der aktuellen zurück Datenbankverbindung

mysqli::$client_info – MySQL-Client-Informationen abrufen

mysqli::$client_version – Gibt die MySQL-Client-Version als String zurück

mysqli::close – Schließen die zuvor geöffnete Datenbankverbindung

mysqli::commit – Eine Transaktion festschreiben

mysqli::$connect_errno – Gibt den Fehlercode vom letzten Verbindungsaufruf zurück

mysqli::$connect_error – Gibt eine Zeichenfolgenbeschreibung des letzten Verbindungsfehlers zurück

mysqli::__construct – Öffnet eine neue Verbindung zum MySQL-Server

mysqli::debug – Führt Debugging-Vorgänge durch

mysqli ::dump_debug_info – Debugging-Informationen in das Protokoll ausgeben

mysqli::errno – Gibt den Fehlercode des letzten Funktionsaufrufs zurück

mysqli::$error_list – Gibt eine Liste der Fehler aus dem zurück letzter ausgeführter Befehl

mysqli::$error – Gibt eine Zeichenfolgenbeschreibung des letzten Fehlers zurück

mysqli::$field_count – Gibt die Anzahl der Spalten für die letzte Abfrage zurück

mysqli::get_charset – Gibt ein Zeichensatzobjekt zurück

mysqli::get_client_info – MySQL-Client-Informationen abrufen

mysqli_get_client_stats – Gibt Client-Pro-Prozess-Statistiken zurück

mysqli_get_client_version – Gibt die zurück MySQL-Client-Version als Ganzzahl

mysqli::get_connection_stats – Gibt Statistiken über die Client-Verbindung zurück

mysqli::$host_info – Gibt eine Zeichenfolge zurück, die den Typ der verwendeten Verbindung darstellt

mysqli::$protocol_version – Gibt die Version des verwendeten MySQL-Protokolls zurück

mysqli::$server_info – Gibt die Version des MySQL-Servers zurück

mysqli::$server_version – Gibt die Version des zurück MySQL-Server als Ganzzahl

mysqli::get_warnings – Ergebnis von SHOW WARNINGS abrufen

mysqli::$info – Ruft Informationen über die zuletzt ausgeführte Abfrage ab

mysqli:: init – Initialisiert MySQLi und gibt eine Ressource zur Verwendung mit mysqli_real_connect()

zurück

mysqli::$insert_id – Gibt die automatisch generierte ID zurück, die in der letzten Abfrage verwendet wurde

mysqli::kill – Fordert den Server auf, einen MySQL-Thread zu beenden

mysqli::more_results – Überprüfen wenn es weitere Abfrageergebnisse aus einer Mehrfachabfrage gibt

mysqli::multi_query – Führt eine Abfrage in der Datenbank durch

mysqli::next_result – Bereiten Sie das nächste Ergebnis von multi_query vor

mysqli::options – Optionen festlegen

mysqli::ping – Pingt eine Serververbindung an oder versucht, die Verbindung wiederherzustellen, wenn die Verbindung unterbrochen ist

mysqli::poll – Verbindungen abfragen

mysqli::prepare – Bereiten Sie eine SQL-Anweisung für die Ausführung vor

mysqli::query – 对数据库执行一次查询

mysqli::real_connect – Öffnet eine Verbindung zu einem MySQL-Server

mysqli::real_escape_string – Escape-Sonderzeichen in einer Zeichenfolge zur Verwendung in einer SQL-Anweisung unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung

mysqli::real_query – 执行一个mysql查询

mysqli::reap_async_query – Ergebnis einer asynchronen Abfrage abrufen

mysqli::refresh – Aktualisiert

mysqli::release_savepoint – Setzt eine Transaktion auf den benannten Sicherungspunkt zurück

mysqli: :rollback – 回退当前事务

mysqli::rpl_query_type – Gibt den RPL-Abfragetyp zurück

mysqli::savepoint – Setzt einen benannten Transaktionsspeicherpunkt

mysqli::select_db – 选择用于数据库查询的默认数据库

mysqli::send_query — 发送请求并返回结果

mysqli::set_charset — 设置默认字符编码

mysqli::set_local_infile_default  – Deaktiviert Benutzerdefinierter Handler für den Befehl „load local infile“

mysqli::set_local_infile_handler – Callback-Funktion für den Befehl LOAD DATA LOCAL INFILE festlegen

mysqli::$sqlstate – Gibt den SQLSTATE-Fehler aus dem vorherigen MySQL-Vorgang zurück

mysqli::ssl_set – Wird zum Herstellen sicherer Verbindungen mit SSL verwendet

mysqli::stat – Ruft den aktuellen Systemstatus ab

mysqli::stmt_init – 初始化一条语句并返回一个用于mysqli_stmt_prepare(调用)的对象

mysqli::store_result – Überträgt einen Ergebnissatz aus der letzten Abfrage

mysqli::$thread_id – Gibt die Thread-ID für die aktuelle Verbindung zurück

mysqli::thread_safe – 返回是否是线程安全的

mysqli::use_result – Initiieren Sie einen Ergebnismengenabruf

mysqli::$warning_count – Gibt die Anzahl der Warnungen aus der letzten Abfrage zurück für den angegebenen Link

MySQLi_STMT类

代表一个prepared语句。

mysqli_stmt::$affected_rows  – Gibt die Gesamtzahl der Zeilen zurück, die zuletzt geändert, gelöscht oder eingefügt wurden ausgeführte Anweisung

mysqli_stmt::attr_get – Wird verwendet, um den aktuellen Wert eines Anweisungsattributs abzurufen

mysqli_stmt::attr_set – Wird verwendet, um das Verhalten einer vorbereiteten Anweisung zu ändern

mysqli_stmt ::bind_param – Bindet Variablen als Parameter an eine vorbereitete Anweisung

mysqli_stmt::bind_result – Bindet Variablen an eine vorbereitete Anweisung zur Ergebnisspeicherung

mysqli_stmt::close – Schließt eine vorbereitete Anweisung

mysqli_stmt::data_seek – Sucht nach einer beliebigen Zeile im Anweisungsergebnissatz

mysqli_stmt::$errno – Gibt den Fehlercode für den letzten Anweisungsaufruf zurück

mysqli_stmt::$error_list – Gibt eine Liste der Fehler der zuletzt ausgeführten Anweisung zurück

mysqli_stmt::$error – Gibt eine Zeichenfolgenbeschreibung für den Fehler der letzten Anweisung zurück

mysqli_stmt::execute – Führt eine vorbereitete Abfrage aus

mysqli_stmt::fetch – Ergebnisse aus einer vorbereiteten Anweisung in die gebundenen Variablen abrufen

mysqli_stmt::$field_count – Gibt die Anzahl der Felder in der angegebenen Anweisung zurück

mysqli_stmt::free_result – Gibt frei gespeicherter Ergebnisspeicher für das angegebene Anweisungshandle

mysqli_stmt::get_result – Ruft eine Ergebnismenge aus einer vorbereiteten Anweisung ab

mysqli_stmt::get_warnings – Ergebnis von SHOW WARNINGS abrufen

mysqli_stmt ::$insert_id – Ruft die aus der vorherigen INSERT-Operation generierte ID ab

mysqli_stmt::more_results – Prüft, ob es weitere Abfrageergebnisse aus einer Mehrfachabfrage gibt

mysqli_stmt::next_result – Liest die nächste Ergebnis einer Mehrfachabfrage

mysqli_stmt::$num_rows – Gibt die Anzahl der Zeilen im Ergebnissatz der Anweisungen zurück

mysqli_stmt::$param_count – Gibt die Anzahl der Parameter für die angegebene Anweisung zurück

mysqli_stmt::prepare – Bereiten Sie eine SQL-Anweisung für die Ausführung vor

mysqli_stmt::reset – Setzt eine vorbereitete Anweisung zurück

mysqli_stmt::result_metadata – Gibt Ergebnissatz-Metadaten aus einer vorbereiteten Anweisung zurück

mysqli_stmt::send_long_data – Daten in Blöcken senden

mysqli_stmt::$sqlstate – Gibt einen SQLSTATE-Fehler aus der vorherigen Anweisungsoperation zurück

mysqli_stmt::store_result – Überträgt einen Ergebnissatz aus einer vorbereiteten Aussage

mysqli_result类

代表从一个数据库查询中获取的结果集

mysqli_result::$current_field – Aktuellen Feldoffset eines Ergebniszeigers abrufen

mysqli_result:: data_seek – Passt den Ergebniszeiger auf eine beliebige Zeile im Ergebnis an

mysqli_result::fetch_all – Ruft alle Ergebniszeilen als assoziatives Array, numerisches Array oder beides ab

mysqli_result::fetch_array – Rufen Sie eine Ergebniszeile als assoziatives, numerisches Array oder beides ab

mysqli_result::fetch_assoc – Rufen Sie eine Ergebniszeile als assoziatives Array ab

mysqli_result::fetch_field_direct – Rufen Sie Metadaten für a ab einzelnes Feld

mysqli_result::fetch_field – Gibt das nächste Feld im Ergebnissatz zurück

mysqli_result::fetch_fields – Gibt ein Array von Objekten zurück, die die Felder in einem Ergebnissatz darstellen

mysqli_result::fetch_object – Gibt die aktuelle Zeile einer Ergebnismenge als Objekt zurück

mysqli_result::fetch_row – Ruft eine Ergebniszeile als Aufzählungsarray ab

mysqli_result::$field_count – Ruft die Zahl ab von Feldern in einem Ergebnis

mysqli_result::field_seek – Ergebniszeiger auf einen angegebenen Feldoffset setzen

mysqli_result::free – Gibt den mit einem Ergebnis verknüpften Speicher frei

mysqli_result: :$lengths – Gibt die Längen der Spalten der aktuellen Zeile im Ergebnissatz zurück

mysqli_result::$num_rows – Ruft die Anzahl der Zeilen in einem Ergebnis ab

MySQLi_Driver类

MySQLi 驱动.

client_info

客户端API头版本(比如:(string)"5.1.49")


client_version

客户端版本(比如:(int)50149)


driver_version

Mysqli驱动版本(比如:(int)1 01009 )


eingebettet

是否开启了MySQLi嵌入式支持.


reconnect

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


report_mode

设置为MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL或者 MYSQLI_REPORT_STRICT (为错误抛出异常,译注:需要和MYSQLI_REPORT_ERROR联合使用), MYSQLI_REPORT_ERROR (报告MYSQL错误)和 MYSQLI_REPORT_INDEX (报告索引相关的错误)的任意组合.


mysqli_driver:: embedded_server_end – Stoppen Sie den eingebetteten Server

mysqli_driver::embedded_server_start – Initialisieren und starten Sie den eingebetteten Server

mysqli_driver::$report_mode – Aktiviert oder deaktiviert interne Berichtsfunktionen

MySQLi_Warning类

代表一个Mysql警告.

message

消息字符串

sqlstate

SQL状态

errno

错误编号

mysqli_warning::__construct – Der __construct-Zweck

mysqli_warning::next – Der nächste Zweck

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的别名

mysqli_bind_result — mysqli_stmt_bind_result的别名

mysqli_client_encoding — mysqli_character_set_name的别名

mysqli_connect — 别名 mysqli::__construct

mysqli::disable_reads_from_master – Lesevorgänge vom Master deaktivieren

mysqli_disable_rpl_parse – 禁用RPL解析

mysqli_enable_reads_from_master – 开启从主机读取

mysqli_enable_rpl_parse – 开启RPL解析

mysqli_escape_string – 别名 mysqli_real_escape_string

mysqli_execute – mysqli_stmt_execute的别名

mysqli_fetch — mysqli_stmt_fetch的别名.

mysqli_get_cache_stats — 返回客户端Zval缓存统计信息

mysqli_get_metadata — mysqli_stmt_result_metadata的别名

mysqli_master_query — 在主/从机制中强制在主机中执行一个查询

mysqli_param_count — mysqli_stmt_param_count的别名

mysqli_report — 开启或禁用(Mysql)内部(错误)报告函数

mysqli_rpl_parse_enabled — 检查是否开启了RPL解析

mysqli_rpl_probe — RPL探测

mysqli_send_long_data — mysqli_stmt_send_long_data的别名

mysqli_set_opt — mysqli_ Optionen的别名

mysqli_slave_query  – 在主/从机制中强制在从机上执行一个查询


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn