# MySQL Improved Extension

# Einführung

Die `mysqli`-Erweiterung ermöglicht es, die ab MySQL 4.1 gegebene Funktionalität anzusprechen. Weitere Informationen über den MySQL-Datenbank-Server sind unter » http://www.mysql.com/ zu finden.

Ein Überblick über Software, die MySQL unter PHP nutzt, ist unter Übersicht zu finden.

Dokumentation über MySQL befindet sich unter » http://dev.mysql.com/doc/.

Teile dieser Dokumentation sind mit Erlaubnis der Oracle Corporation dem MySQL-Handbuch entnommen.

Beispiele verwenden entweder die » world oder » sakila Datenbank, die frei verfügbar sind.

- Übersicht
- Kurzanleitung für den schnellen Einstieg
  - Prozedurale und objektorientierte Schnittstelle
  - Datenbankverbindungen
  - Ausführen von Anweisungen
  - Vorbereitete Anweisungen (Prepared Statements)
  - Gespeicherte Prozeduren (Stored Procedures)
  - Mehrfach-Anweisungen
  - API-Unterstützung für Transaktionen
  - Metadaten
- Installation/Konfiguration
  - Anforderungen
  - Installation
  - Laufzeit-Konfiguration
- Die Erweiterung mysqli und persistente (beständige) Verbindungen
- Vordefinierte Konstanten
- Hinweise
- Die Funktionen der Erweiterung MySQLi im Überblick
- mysqli — Die Klasse mysqli
  - mysqli::$affected_rows — Liefert die Anzahl der Datensätze, die vom letzten MySQL-Vorgang betroffen waren
  - mysqli::autocommit — Aktiviert oder deaktiviert das automatische Bestätigen von Datenbankänderungen
  - mysqli::begin_transaction — Startet eine Transaktion
  - mysqli::change_user — Ändert den Benutzer der Datenbankverbindung
  - mysqli::character_set_name — Liefert den aktuellen Zeichensatz der Datenbankverbindung
  - mysqli::close — Schließt die zuvor geöffnete Datenbankverbindung
  - mysqli::commit — Bestätigt die aktuelle Transaktion
  - mysqli::$connect_errno — Liefert den Fehlercode des letzten Verbindungsversuchs
  - mysqli::$connect_error — Liefert eine Beschreibung des letzten Verbindungsfehlers
  - mysqli::__construct — Baut eine neue Verbindung zum MySQL-Server auf
  - mysqli::debug — Führt Debugging-Operationen durch
  - mysqli::dump_debug_info — Schreibt Debugging-Informationen in die Logdatei
  - mysqli::$errno — Liefert den Fehlercode des letzten Funktionsaufrufs
  - mysqli::$error — Liefert eine Zeichenkette, die den letzten Fehler beschreibt
  - mysqli::$error_list — Liefert eine Liste der Fehler des zuletzt ausgeführten Befehls
  - mysqli::execute_query — Bereitet eine SQL-Anweisung vor, bindet die Parameter und führt die Anweisung aus
  - mysqli::$field_count — Liefert die Anzahl der Spalten der letzten Abfrage
  - mysqli::get_charset — Liefert ein Zeichensatz-Objekt
  - mysqli::$client_info — Liefert die Version des MySQL-Clients als Zeichenkette
  - mysqli::$client_version — Liefert die Version des MySQL-Clients als Integer
  - mysqli::get_connection_stats — Liefert Verbindungsstatistiken des Clients
  - mysqli::$host_info — Liefert eine Zeichenkette, die den Typ der verwendeten Verbindung angibt
  - mysqli::$protocol_version — Liefert die Version des verwendeten MySQL-Protokolls
  - mysqli::$server_info — Liefert die Version des MySQL-Servers
  - mysqli::$server_version — Liefert die Version des MySQL-Servers als Integer
  - mysqli::get_warnings — Ermittelt das Ergebnis von SHOW WARNINGS
  - mysqli::$info — Ruft Informationen über die zuletzt ausgeführte Abfrage ab
  - mysqli::init — Initialisiert MySQLi und liefert ein Objekt zur Verwendung mit mysqli_real_connect()
  - mysqli::$insert_id — Liefert den Wert, der bei der letzten Anweisung für die AUTO_INCREMENT-Spalte erzeugt wurde
  - mysqli::kill — Weist den Server an, einen MySQL-Thread zu beenden
  - mysqli::more_results — Prüft, ob es von einer Mehrfachabfrage noch weitere Abfrageergebnisse gibt
  - mysqli::multi_query — Führt eine oder mehrere Abfragen in einer Datenbank durch
  - mysqli::next_result — Bereitet das nächste Ergebnis von multi_query vor
  - mysqli::options — Setzt Optionen
  - mysqli::ping — Pingt eine Serververbindung an oder versucht eine neue Verbindung aufzubauen, wenn die Verbindung unterbrochen wurde
  - mysqli::poll — Überprüft den Status von Verbindungen
  - mysqli::prepare — Bereitet eine SQL-Anweisung zur Ausführung vor
  - mysqli::query — Führt eine Abfrage in einer Datenbank durch
  - mysqli::real_connect — Baut eine Verbindung zu einem MySQL-Server auf
  - mysqli::real_escape_string — Maskiert Sonderzeichen in einer Zeichenkette zur Verwendung in einer SQL-Anweisung, wobei der aktuelle Zeichensatz der Verbindung berücksichtigt wird
  - mysqli::real_query — Führt eine SQL-Abfrage aus
  - mysqli::reap_async_query — Ruft das Ergebnis einer asynchronen Abfrage ab
  - mysqli::refresh — Führt ein Refresh durch
  - mysqli::release_savepoint — Entfernt einen benannten Sicherungspunkt aus der Menge der Sicherungspunkte der aktuellen Transaktion
  - mysqli::rollback — Macht die aktuelle Transaktion rückgängig
  - mysqli::savepoint — Sezt einen benannten Sicherungspunkt für eine Transaktion
  - mysqli::select_db — Legt die standardmäßige Datenbank für Datenbankabfragen fest
  - mysqli::set_charset — Legt den Standard-Zeichensatz des Clients fest
  - mysqli::$sqlstate — Liefert den SQLSTATE-Fehler der letzten MySQL-Operation
  - mysqli::ssl_set — Wird beim Aufbau sicherer Verbindungen mit SSL verwendet
  - mysqli::stat — Liefert den aktuellen Systemstatus
  - mysqli::stmt_init — Initialisiert eine Anweisung und liefert ein Objekt für die Verwendung mit mysqli_stmt_prepare
  - mysqli::store_result — Überträgt die Ergebnismenge der letzten Abfrage
  - mysqli::$thread_id — Liefert die Thread-ID der aktuellen Verbindung
  - mysqli::thread_safe — Gibt an, ob Thread-Sicherheit gegeben ist oder nicht
  - mysqli::use_result — Initiiert den Abruf einer Ergebnismenge
  - mysqli::$warning_count — Liefert die Anzahl der Warnungen, die durch die letzte Abfrage erzeugt wurden
- mysqli_stmt — Die Klasse mysqli_stmt
  - mysqli_stmt::$affected_rows — Liefert die gesamte Anzahl der Datensätze, die bei der letzten ausgeführten Anweisung geändert, gelöscht, eingefügt oder abgeglichen wurden
  - mysqli_stmt::attr_get — Liefert den aktuellen Wert des Attributs einer Anweisung
  - mysqli_stmt::attr_set — Verändert das Verhalten einer vorbereiteten Anweisung (prepared statement)
  - mysqli_stmt::bind_param — Bindet Variablen als Parameter an eine vorbereitete Anweisung (prepared statement)
  - mysqli_stmt::bind_result — Bindet Variablen an eine vorbereitete Anweisung (prepared statement), um das Ergebnis einer Abfrage abzulegen
  - mysqli_stmt::close — Schließt eine vorbereitete Anweisung (prepared statement)
  - mysqli_stmt::__construct — Erzeugt ein neues mysqli_stmt-Objekt
  - mysqli_stmt::data_seek — Verschiebt den Ergebniszeiger auf eine beliebige Zeile im gepufferten Ergebnis
  - mysqli_stmt::$errno — Liefert den Fehlercode der zuletzt aufgerufenen Anweisung
  - mysqli_stmt::$error — Liefert die Beschreibung des letzten Fehlers einer Anweisung als Zeichenkette
  - mysqli_stmt::$error_list — Liefert eine Liste der Fehler der zuletzt ausgeführten Anweisung
  - mysqli_stmt::execute — Führt eine vorbereitete Anweisung aus
  - mysqli_stmt::fetch — Ruft Ergebnisse aus einer vorbereiteten Anweisung in gebundene Variablen ab
  - mysqli_stmt::$field_count — Liefert die Anzahl der Spalten in der angegebenen Anweisung
  - mysqli_stmt::free_result — Gibt den mit der angegebenen Anweisung verbundenen Ergebnisspeicher frei
  - mysqli_stmt::get_result — Ruft die Ergebnismenge aus einer vorbereiteten Anweisung als mysqli_result-Objekt ab
  - mysqli_stmt::get_warnings — Ermittelt das Ergebnis von SHOW WARNINGS
  - mysqli_stmt::$insert_id — Ermittelt die ID, die beim letzten INSERT-Vorgang erzeugt wurde
  - mysqli_stmt::more_results — Prüft, ob es weitere Ergebnisse aus einer Mehrfachabfrage gibt
  - mysqli_stmt::next_result — Liest das nächste Ergebnis einer Mehrfachabfrage aus
  - mysqli_stmt::$num_rows — Liefert die Anzahl der vom Server abgerufenen Datensätze
  - mysqli_stmt::$param_count — Liefert die Anzahl der Parameter einer Anweisung
  - mysqli_stmt::prepare — Bereitet eine SQL-Anweisung zur Ausführung vor
  - mysqli_stmt::reset — Setzt eine vorbereitete Anweisung zurück
  - mysqli_stmt::result_metadata — Liefert die Metadaten der Ergebnismenge aus einer vorbereiteten Anweisung
  - mysqli_stmt::send_long_data — Sendet Daten blockweise
  - mysqli_stmt::$sqlstate — Liefert den SQLSTATE-Fehlercode der letzten Anweisung
  - mysqli_stmt::store_result — Speichert eine Ergebnismenge in einem internen Puffer
- mysqli_result — Die Klasse mysqli_result
  - mysqli_result::__construct — Erstellt ein mysqli_result-Objekt
  - mysqli_result::$current_field — Ermittelt den aktuellen Spalten-Offset eines Ergebniszeigers
  - mysqli_result::data_seek — Verschiebt den Ergebniszeiger auf die angegebene Zeile
  - mysqli_result::fetch_all — Ruft alle Ergebniszeilen als assoziatives und/oder numerisches Array ab
  - mysqli_result::fetch_array — Ruft die nächste Zeile einer Ergebnismenge als assoziatives und/oder numerisches Array ab
  - mysqli_result::fetch_assoc — Ruft die nächste Zeile einer Ergebnismenge als assoziatives Array ab
  - mysqli_result::fetch_column — Ruft eine einzelne Spalte aus der nächsten Zeile einer Ergebnismenge ab
  - mysqli_result::fetch_field — Liefert die Metadaten der nächsten Spalte einer Ergebnismenge
  - mysqli_result::fetch_field_direct — Ruft die Metadaten für eine einzelne Spalte ab
  - mysqli_result::fetch_fields — Liefert ein Array von Objekten, die die Spalten einer Ergebnismenge darstellen
  - mysqli_result::fetch_object — Liefert die nächste Zeile einer Ergebnismenge als Objekt
  - mysqli_result::fetch_row — Liefert die nächste Zeile einer Ergebnismenge als numerisches Array
  - mysqli_result::$field_count — Ermittelt die Anzahl der Spalten in der Ergebnismenge
  - mysqli_result::field_seek — Setzt den Ergebniszeiger auf die angegebene Spalte
  - mysqli_result::free — Gibt den mit einem Ergebnis verbundenen Speicher frei
  - mysqli_result::getIterator — Ruft einen externen Iterator ab
  - mysqli_result::$lengths — Liefert die Breiten der Spalten der aktuellen Zeile einer Ergebnismenge
  - mysqli_result::$num_rows — Ermittelt die Anzahl der Zeilen einer Ergebnismenge
- mysqli_driver — Die Klasse mysqli_driver
  - mysqli_driver::embedded_server_end — Stoppt den eingebauten Server
  - mysqli_driver::embedded_server_start — Initialisiert und startet den eingebauten Server
  - mysqli_driver::$report_mode — Legt den Modus für die mysqli-Fehlermeldungen fest
- mysqli_warning — Die Klasse mysqli_warning
  - mysqli_warning::__construct — Privater Konstruktor, um eine direkte Instanziierung zu verhindern
  - mysqli_warning::next — Ruft die nächste Warnung ab
- mysqli_sql_exception — Die Klasse mysqli_sql_exception
  - mysqli_sql_exception::getSqlState — Liefert den SQLSTATE-Fehlercode
- Aliase und veraltete MySQLi Funktionen
  - mysqli_connect — Alias von mysqli::__construct
  - mysqli::escape_string — Alias von mysqli_real_escape_string
  - mysqli_execute — Alias von mysqli_stmt_execute
  - mysqli_get_client_stats — Liefert prozessbezogene Client-Statistiken
  - mysqli_get_links_stats — Liefert Informationen über offene und zwischengespeicherte Verbindungen
  - mysqli_report — Alias von mysqli_driver->report_mode
  - mysqli::set_opt — Alias von mysqli_options
- Changelog

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open