Forum und email

Verbesserte MySQL Erweiterung

Einführung

Die mysqli-Erweiterung ermöglicht Ihnen den Zugriff auf Funktionalitäten von MySQL 4.1 und höher. Weitere Informationen über den MySQL Datenbankserver finden Sie unter » https://www.mysql.com/

Die Dokumentation von MySQL finden Sie unter » https://dev.mysql.com/doc/

Warnung

Diese Erweiterung ist EXPERIMENTELL. Das Verhalten dieser Erweiterung, einschließlich der Funktionsnamen, und alles Andere was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko.

Anforderungen

Um die Funktionalitäten dieser Erweiterung nutzen zu können, müssen Sie PHP mit Unterstützung für mysqli kompilieren.

Hinweis: Die mysqli-Erweiterung wurde erstellt, um mit den MySQL-Versionen >= 4.1 zu arbeiten. Wenn Sie eine ältere Version verwenden, sollten Sie einen Blick auf die Dokumentation der mysql-Erweiterung werfen.

Installation

Um die mysqli-Erweiterung für PHP zu installieren, benutzen Sie den Schalter --with-mysqli=mysql_config_path/mysql_config, wobei mysql_config_path auf das Verzeichnis des mysql_config-Programms verweist, das bei MySQL-Versionen größer als 4.1 vorhanden ist.

Wenn Sie die Standard-MySQL-Erweiterung zusammen mit der mysqli-Erweiterung installieren möchten, müssen Sie für beide die gleiche Client-Bibliothek verwenden, um Konflikten vorzubeugen.

Installation auf Windows-Systemen

MySQLi ist nicht standardmäßig aktiviert, daher muss die php_mysqli.dll-DLL in der php.ini selbst aktiviert werden. Dafür benötigt PHP den Zugriff auf die MySQL client library. Eine Datei namens libmysql.dll ist bereits in der PHP-Distribution für Windows enthalten, und um die Kommunikation zwischen PHP und MySQL herzustellen, muss die Datei über die Windows-Systemvariable PATH erreichbar sein. Lesen Sie dazu auch den FAQ-Eintrag "Wie füge ich unter Windows PATH mein PHP-Verzeichnis hinzu?", um weitere Informationen über das dafür benötigte Vorgehen zu erhalten. Obwohl es auch möglich wäre, die libmysql.dll in das Windows-Systemverzeichnis zu kopieren, um die Datei ansprechen zu können (das Systemverzeichnis ist standardmäßig in der PATH-Variable enthalten), wird dieses Vorgehen keinesfalls empfohlen.

Hinweis: Um MySQL 5 anzusprechen, empfehlen wir, die passenden Binärdateien direkt von » https://dev.mysql.com/downloads/connector/php/ herunterzuladen.

Wie bei der Aktivierung jeder anderen PHP-Extension (wie z.B. php_mysqli.dll) sollte auch hier die PHP-Direktive extension_dir auf das Verzeichnis zeigen, in dem die vorhandenen PHP-Extensions liegen. Lesen Sie dazu auch den Abschnitt Manual Windows Installation Instructions. Ein entsprechender extension_dir-Wert für PHP 5 könnte zum Beispiel c:\php\ext sein.

Hinweis: Wenn beim Starten des Webservers ein Fehler ähnlich dem folgenden auftritt: "Unable to load dynamic library './php_mysqli.dll'", wird im Normalfall die php_mysqli.dll und/oder die libmysql.dll nicht vom System gefunden.

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.

MySQLi Konfigurations-Optionen
Name Standard Änderbar Changelog
mysqli.max_links "-1" PHP_INI_SYSTEM verfügbar seit PHP 5.0.0
mysqli.default_port 3306 PHP_INI_ALL verfügbar seit PHP 5.0.0
mysqli.default_socket NULL PHP_INI_ALL verfügbar seit PHP 5.0.0
mysqli.default_host NULL PHP_INI_ALL verfügbar seit PHP 5.0.0
mysqli.default_user NULL PHP_INI_ALL verfügbar seit PHP 5.0.0
mysqli.default_pw NULL PHP_INI_ALL verfügbar seit PHP 5.0.0

Für weitere Details und Definitionen über die oben genannten PHP_INI_*-Konstanten sehen Sie im Kapitel über Konfigurations-Änderungen nach.

Hier eine kurze Erklärung der Konfigurationsoptionen:

Die maximale Anzahl von MySQL-Verbindungen pro Prozess.

mysqli.default_port string

Die Standard-TCP-Portnummer, die benutzt werden soll, wenn eine Verbindung zum Datenbankserver aufgenommen werden soll und kein anderer Port explizit angegeben wurde. Wenn hier kein Standardport angegeben wird, wird der Port aus der MYSQL_TCP_PORT Umgebungs-Variable, dem mysql-tcp-Eintrag in der /etc/services oder der compile-time MYSQL_PORT-Konstante (in dieser Reihenfolge) verwendet.

mysqli.default_socket string

Der Standard-Socketname, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Socketname angegeben wurde.

mysqli.default_host string

Der Standard-Server-Host, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Host angegeben wurde. Funktioniert nicht im Safe Mode.

mysqli.default_user string

Der Standard-Username, der beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderer Name angegeben wurde. Funktioniert nicht im Safe Mode.

mysqli.default_password string

Das Standard-Passwort, das beim Verbindungsaufbau zu einem lokalen Datenbankserver verwendet wird, sofern kein anderes Passwort angegeben wurde. Funktioniert nicht im Safe Mode.

Resource Typen

mysqli_stmt

Stellt eine vorbereitete Anfrage dar.

mysqli_result

Stellt den Ergebnissatz einer zuvor ausgeführten Anfrage an die Datenbank dar.

Vordefinierte Konstanten

MySQLi Konstanten
Name Beschreibung
MYSQLI_READ_DEFAULT_GROUP (integer)
MYSQLI_READ_DEFAULT_FILE (integer)
MYSQLI_OPT_CONNECT_TIMEOUT (integer)
MYSQLI_OPT_LOCAL_INFILE (integer)
MYSQLI_INIT_COMMAND (integer)
MYSQLI_CLIENT_SSL (integer)
MYSQLI_CLIENT_COMPRESS (integer)
MYSQLI_CLIENT_INTERACTIVE (integer)
MYSQLI_CLIENT_IGNORE_SPACE (integer)
MYSQLI_CLIENT_NO_SCHEMA (integer)
MYSQLI_CLIENT_MULTI_QUERIES (integer)
MYSQLI_STORE_RESULT (integer)
MYSQLI_USE_RESULT (integer)
MYSQLI_ASSOC (integer)
MYSQLI_NUM (integer)
MYSQLI_BOTH (integer)
MYSQLI_NOT_NULL_FLAG (integer)
MYSQLI_PRI_KEY_FLAG (integer)  
MYSQLI_UNIQUE_KEY_FLAG (integer)  
MYSQLI_MULTIPLE_KEY_FLAG (integer)  
MYSQLI_BLOB_FLAG (integer)  
MYSQLI_UNSIGNED_FLAG (integer)  
MYSQLI_ZEROFILL_FLAG (integer)  
MYSQLI_AUTO_INCREMENT_FLAG (integer)  
MYSQLI_TIMESTAMP_FLAG (integer)  
MYSQLI_SET_FLAG (integer)  
MYSQLI_NUM_FLAG (integer)  
MYSQLI_PART_KEY_FLAG (integer)  
MYSQLI_GROUP_FLAG (integer)  
MYSQLI_TYPE_DECIMAL (integer)  
MYSQLI_TYPE_TINY (integer)  
MYSQLI_TYPE_SHORT (integer)  
MYSQLI_TYPE_LONG (integer)  
MYSQLI_TYPE_FLOAD (integer)  
MYSQLI_TYPE_DOUBLE (integer)  
MYSQLI_TYPE_NULL (integer)  
MYSQLI_TYPE_TIMESTAMP (integer)  
MYSQLI_TYPE_LONGLONG (integer)  
MYSQLI_TYPE_INT24 (integer)  
MYSQLI_TYPE_DATE (integer)  
MYSQLI_TYPE_TIME (integer)  
MYSQLI_TYPE_DATETIME (integer)  
MYSQLI_TYPE_YEAR (integer)  
MYSQLI_TYPE_NEWDATE (integer)  
MYSQLI_TYPE_ENUM (integer)  
MYSQLI_TYPE_SET (integer)  
MYSQLI_TYPE_TINY_BLOB (integer)  
MYSQLI_TYPE_MEDIUM_BLOB (integer)  
MYSQLI_TYPE_LONG_BLOB (integer)  
MYSQLI_TYPE_BLOB (integer)  
MYSQLI_TYPE_VAR_STRING (integer)  
MYSQLI_TYPE_STRING (integer)  
MYSQLI_TYPE_CHAR (integer)  
MYSQLI_TYPE_INTERVAL (integer)  
MYSQLI_TYPE_GEOMETRY (integer)  
MYSQLI_BIND_STRING (integer)  
MYSQLI_BIND_INT (integer)  
MYSQLI_BIND_DOUBLE (integer)  
MYSQLI_BIND_SEND_DATA (integer)  
MYSQLI_RPL_MASTER (integer)  
MYSQLI_RPL_SLAVE (integer)  
MYSQLI_RPL_ADMIN (integer)  
MYSQLI_NEED_DATA (integer)  
MYSQLI_NO_DATA (integer)  
MYSQLI_PR_REPORT_STDERR (integer)  
MYSQLI_PR_REPORT_PORT (integer)  
MYSQLI_PR_REPORT_FILE (integer)  

Inhaltsverzeichnis