LXIII. MySQL Funktionen

Einführung

Diese Funktionen erlauben den Zugriff auf einen MySQL Datenbank-Server . Weitere Information zu MySQL sind unter http : / /www.mysql.com / erhältlich .

Die Dokumentation zu MySQL ist unter http : / /www.mysql.com / documentation / zu finden .

Anforderungen

Um diese Funktionen nutzen zu können , müssen Sie PHP mit MySQL-Unterstützung übersetzen .

Installation

Durch die Angabe der Konfigurationsoption --with-mysql[ =DIR ] beim Aufruf von configure ermöglichen Sie den Zugriff auf MySQL über PHP . Falls Sie den Pfad zu MySQL nicht angeben , verwendet PHP die internen MySQL-Client Bibliotheken . Seit PHP 4 ist die Unterstützung für MySQL standardmäßig immer aktiviert ; falls Sie die Konfigurationsoption weglassen , werden die internen MySQL-Bibliotheken genutzt . Benutzer die MySQL auch in anderen Anwendungen nutzen möchten ( zum Beispiel : PHP 3 und PHP 4 als simultane Apache-Module oder auth-mysql ) sollten immer den Pfad zu MySQL mit der Option - - with-mysql= / pfad / zu / mysql festlegen . Diese Angabe zwingt PHP die Client-Bibliotheken zu nutzen , die von MySQL installiert wurden . Diese Vorgehensweise vermeidet jegliche Konflikte .

Warnung

Abstürze und Startprobleme von PHP können auftreten , wenn Sie diese Extension zusammen mit der recode-Extension laden . Für weitere Informationen schauen Sie bitte bei der recode Extension nach .

Laufzeit Konfiguration

Das Verhalten dieser Funktionen wird von Einstellungen in der php.ini bestimmt .

Tabelle 1 . MySQL Konfigurations-Optionen

Standard Veränderbar
Weitere Details und die Definition der PHP_INI_* Konstanten sind unter ini_set() zu finden.

Beschreibung der Konfigurations-Optionen

mysql.allow_persistent boolean

gibt an , ob persistente Verbindungen zu MySQL gestattet werden sollen .

mysql.max_persistent integer

Die maximale Anzahl von persistenten MySQL Verbindungen pro Prozess .

mysql.max_links integer

Die maximale Anzahl von MySQL Verbindungen , einschließlich persistenter , pro Prozess .

mysql.default_port string

Gibt die Portnummer an , über den die Verbindung zum MySQL-Server aufgebaut werden soll , wenn kein Port als Verbindungsparameter übergeben wurde . Wird die Portnummer nicht angegeben , wird der Port über die MYSQL_TCP_PORT Umgebungsvariable , dem mysql-tcp Eintrag aus der Datei / etc / services oder der Konstanten MYSQL_PORT festgelegt , in dieser Reihenfolge . Win32 Systeme verwenden nur die Konstante MYSQL_PORT .

mysql.default_socket string

Legt den Socketnamen fest , der bei der Verbindung zu einem lokalen Datenbankserver bennutzt werden soll , wenn kein anderer Name angegeben wurde .

mysql.default_host string

Legt den Datenbankserver fest , zu dem eine Verbindung aufgebaut werden soll , wenn kein Server angegeben wurde . Diese Option hat im safe mode keine Auswirkungen .

mysql.default_user string

Legt den Benutzernamen fest , der bei einer Verbindung zu einer Datenbank verwendet werden soll , wenn kein Benutzer angegeben wurde . Diese Option hat im safe mode keine Auswirkungen .

mysql.default_password string

Legt das Passwort fest , das bei einer Verbindung zu einer Datenbank verwendet werden soll , wenn kein Passwort angegeben wurde . Diese Option hat im safe mode keine Auswirkungen .

mysql.connect_timeout integer

Verbindungstimeout in Sekunden . Auf Linuxsystemen wird dieser Timeout auch für die erste Antwort des Servers benutzt .



Resource Typen

Innerhalb des MySQL-Moduls werden zwei Resourcetypen benutzt . Der erste ist die Verbindungskennung für eine Verbindung zum Datenbankserver , der zweite Typ ist eine Resource die auf das Ergebnis einer Anfrage / Abfrage verweist .

Vordefinierte Konstanten

Folgende Konstanten werden von dieser Erweiterung definiert und stehen nur zur Verfügung , wenn die Erweiterung entweder statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde .

Ab PHP 4.3.0 ist es möglich zusätzliche Client-Flags bei den Funktionen mysql_connect( ) und mysql_pconnect( ) anzugeben . Die folgenden Konstanten sind definiert :

Tabelle 2 . MySQL-Client Konstanten

Konstante Beschreibung
Benutze das Kompression Protokoll
Erlaubt Leerzeichen nach Funktionsnamen
Erlaubt Inaktivität von interactive_timeout Sekunden ( anstatt wait_timeout ) bevor die Verbindung geschlossen wird .


Die Funktion mysql_fetch_array( ) verwendet eine Konstante für die verschiedenen Arten der Ergebnisarrays . Die folgenden Konstanten sind definiert :

Tabelle 3 . MySQL fetch Konstanten

Konstante Beschreibung
Spalten werden in einem assioziativen Array zurückgegeben .
Spalten werden sowohl als assioziatives als auch als numerisches Array zurückgegeben .
Spalten werden als numerisches Array zurückgegeben . Der Index beginnt bei 0 , dieser entspricht dem ersten Feld des Ergebnisses .


Begriffserläuterung

In diesem Dokument wird eine Reihe von Begriffen benutzt , die hier kurz erläutert werden sollen .

Anfrageergebnis, Ergebnis

Die Rückgabe auf eine Anfrage an den Datenbankserver . Anfragen können sowohl Datenbankanfragen sein , die Teile des Datenbankinhalts umfassen oder Informationen über eine Datenbank oder den Datenbankserver liefern . Ist das Ergebnis eine Datenbankanfrage kann man es sich als Tabelle vorstellen , in der die Zeilen die Datensätze sind und die Felder den Spalten ensprechen . Ein Ergebnis besteht aus 0 oder beliebig vielen Datensätzen .

Ergebnis-Kennung

Eine Referenz auf ein Ergebnis . Über diese Kennung erfolgt grundsätzlich der Zugriff auf das Ergebnis .

Datensatz

Eine Zeile aus einem Anfrageergebnis bestehend aus den Werten der einzelnen Felder .

Datensatzzeiger

Ein interner Zeiger auf einen Datensatz in einem Anfrageergebnis . Dieser Zeiger bestimmt auf welchen Datensatz zugegriffen wird . Der Zeiger kann sowohl implizit als auch explizit verändert werden .

Feld

Entspricht einer Spalte im Anfrageergebnis .

Feldzeiger

Wie Datensatzzeiger bei Zugriffen auf Felder eines Anfrageergebnisses .

Verbindungs-Kennung

Eine Referenz auf eine Verbindung zum Datenbank-Server . Mit dieser Verbindung ist beispielsweise die Datenbank , der Benutzer , der Rechnername auf dem die Datenbank läuft und weiteres verknüpft . Jeder Zugriff auf den Server nutzt diese Kennung . Wenn die Kennung beim Aufruf einer Funktion nicht angegeben wird , so wird die aktuelle Verbindungs-Kennung verwendet , die intern von PHP verwaltet wird .



Beispiele

Folgendes einfache Beispiel zeigt Ihnen , wie Sie sich mit einer MySQL - Datenbank verbinden , eine Anfrage ausführen , die Ergebnisse ausgeben und die Verbindung wieder trennen .

Beispiel 1 . MySQL Erweiterung : ein Überblicks Beispiel

 
?php

 
/

 
*

 
Verbindung

 
aufbauen

 
,

 
auswählen

 
einer

 
Datenbank

 
*

 
/

 
$link

 
=

 
mysql_connect(

 
"mysql_host"

 
,

 
"mysql_user"

 
,

 
"mysql_password"

 
)

 
or

 
die("Keine

 
Verbindung

 
möglich

 
!")

 
;

 
print

 
"Verbindung

 
zum

 
Datenbankserver

 
erfolgreich"

 
;

 
mysql_select_db("Meine_Datenbank"

 
)

 
or

 
die("Auswahl

 
der

 
Datenbank

 
fehlgeschlagen")

 
;

 
/

 
/

 
ausführen

 
einer

 
SQL

 
Anfrage

 
$query

 
=

 
"SELECT

 
*

 
FROM

 
Meine_Tabelle"

 
;

 
$result

 
=

 
mysql_query($query

 
)

 
or

 
die("Anfrage

 
fehlgeschlagen")

 
;

 
/

 
/

 
Ausgabe

 
der

 
Ergebnisse

 
in

 
HTML

 
print

 
"

 
table

 
\n"

 
;

 
while

 
($line

 
=

 
mysql_fetch_array($result

 
,

 
MYSQL_ASSOC)

 
)

 
{

 
print

 
"\t

 
tr

 
\n"

 
;

 
foreach

 
($line

 
as

 
$col_value

 
)

 
{

 
print

 
"\t\t

 
td

 
$col_value

 
/

 
td

 
\n"

 
;

 
           }

 
print

 
"\t

 
/

 
tr

 
\n"

 
;

 
       }

 
print

 
"

 
/

 
table

 
\n"

 
;

 
/

 
/

 
Freigeben

 
des

 
Resultsets

 
mysql_free_result($result)

 
;

 
/

 
/

 
schliessen

 
der

 
Verbinung

 
mysql_close($link)

 
;

 
?





Inhaltsverzeichnis
mysql_affected_rows -- Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation
mysql_change_user -- Ändert den zur Zeit angemeldeten Benutzer der aktiven Verbindung
mysql_client_encoding -- Returns the name of the character set
mysql_close -- Schließt eine Verbindung zu MySQL
mysql_connect -- Öffnet eine Verbindung zu einem MySQL-Server
mysql_create_db -- Anlegen einer MySQL-Datenbank
mysql_data_seek -- Bewegt den internen Ergebnis-Zeiger
mysql_db_name -- Liefert Ergebnisdaten
mysql_db_query -- Absetzen einer Anfrage an die Datenbank
mysql_drop_db -- Löschen einer Datenbank
mysql_errno -- Liefert die Nummer einer Fehlermeldung einer zuvor ausgeführten MySQL Operation
mysql_error -- Liefert den Fehlertext der zuvor ausgeführten MySQL Operation
mysql_escape_string -- Maskiert einen String zur Benutzung in mysql_query.
mysql_fetch_array -- Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
mysql_fetch_assoc -- Liefert einen Datensatz als assoziatives Array
mysql_fetch_field -- Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis
mysql_fetch_lengths -- Liefert die Länge eines jeden Feldes in einem Ergebnis
mysql_fetch_object -- Liefert eine Ergebniszeile als Objekt
mysql_fetch_row -- Liefert einen Datensatz als indiziertes Array
mysql_field_flags -- Liefert die Flags eines Feldes in einem Anfrageergebnis
mysql_field_len -- Liefert die Länge des angegebenen Feldes
mysql_field_name -- Liefert den Namen eines Feldes in einem Ergebnis
mysql_field_seek -- Setzt den Ergebniszeiger auf ein bestimmtes Feldoffset
mysql_field_table -- Liefert den Namen der Tabelle, die das genannte Feld enthält
mysql_field_type -- Liefert den Typ eines Feldes in einem Ergebnis
mysql_free_result -- Gibt belegten Speicher wieder frei
mysql_get_client_info -- Liefert MySQL Clientinformationen
mysql_get_host_info -- Liefert MySQL Host Informationen
mysql_get_proto_info -- Liefert MySQL Protokollinformationen
mysql_get_server_info -- Liefert MySQL Server Informationen
mysql_info -- liefert Informationen über die zuletzt ausgeführte Anfrage zurück
mysql_insert_id -- Liefert die ID einer vorherigen INSERT-Operation
mysql_list_dbs -- Auflistung der verfügbaren Datenbanken auf einem MySQL Server
mysql_list_fields -- Listet MySQL Ergebnisfelder auf
mysql_list_processes -- Zeigt die MySQL Prozesse an
mysql_list_tables -- Listet Tabellen in einer MySQL Datenbank auf
mysql_num_fields -- Liefert die Anzahl der Felder in einem Ergebnis
mysql_num_rows -- Liefert die Anzahl der Datensätze im Ergebnis
mysql_pconnect -- Öffnet eine persistente Verbindung zum MySQL Server
mysql_ping -- Ping a server connection or reconnect if there is no connection
mysql_query -- Sendet eine Anfrage an MySQL
mysql_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection.
mysql_result -- Liefert Ergebnis
mysql_select_db -- Auswahl einer MySQL Datenbank
mysql_stat -- Zeigt den momentanen Serverstatus an
mysql_tablename -- Liefert den Namen einer Tabelle
mysql_thread_id -- Zeigt die aktuelle Thread ID an
mysql_unbuffered_query -- Sendet eine SQL Anfrage an MySQL, ohne Ergebniszeilen abzuholen und zu puffern.