Disse funktioner giver dig mulighed for at tilgå en MySQL database. Mere information kan findes på http://www.mysql.com/.
Dokumentationen for MySQL kan findes på http://dev.mysql.com/doc/.
For at kunne bruge disse funktioner, skal du have kompileret PHP med support for MySQL.
Ved at bruge --with-mysql[=DIR] som konfigurations flag, under kompilering, kan du få PHP til at bruge MySQL databaser.
I PHP 4, er flaget --with-mysql som stadard slået til. For at fravælge denne feature, skal du bruge --without-mysql som konfigurations flag under kompilering. Samtidig kan du også i PHP 4, vælge at installere det uden at specificere stien til til det DIR MySQL er installeret i, PHP vil der bruge de indbyggede MySQL biblioteker. I Windows er der ingen DLL, da det er allerede er indbygget i PHP 4. Brugere der benytter andre applikationer der bruger MySQL (for eksempel, auth-mysql) bør ikke bruge det indbyggede bibliotek, men derimod specificere DIR-et hvor i, MySQL er installeret, ved at benytte følgende kompilerings flag: --with-mysql=/sti/til/mysql. Dette vil tvinge PHP til at bruge de klient biblioteker, der er installeret med MySQL, og undgår dermed konflikter.
I PHP 5, er MySQL ikke længere slået til som standard, MySQL klient bibliotekerne er heller ikke længere med i PHP. Læs denne FAQ for detaljer, samt begrundelse. På grund af dtte, er Windows brugere nød til at aktivere php_mysql.dll inde i php.ini og enten kopiere libmysql.dll ind i Windows system mappen eller på anden måde gøre den mulig i stien. For kompilering, skal man bare bruge --with-mysql=[DIR] hvor [DIR] er specificeret.
I denne MySQL pakke, er der ikke fuldt ud funktionalitet for MySQL versioner højere end 4.1.0. Til det formål, brug MySQLi.
Hvis du ønsker at installere MySQL pakken, sammen med mysqli pakken bliver du nødt til at bruge de samme klient biblioteker, for at undgå konflikter.
Advarsel |
Crashes og startup problemer af PHP kan forekomme ved at benytte denne pakke, samme med recode pakken. Se recode pakken for mere information. |
Bemærk: hvis du har brug for et andet charset end latin (standard), skal du installere (ikke indbygget) libmysql, kompileret med det ønskede charset.
Virkemåden af disse funktioner er berørt af indstillinger i php.ini.
Tabel 1. MySQL Konfigurations muligheder
Navne | Standard | Udskiftelig |
---|---|---|
mysql.allow_persistent | "On" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL |
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "0" | PHP_INI_SYSTEM |
Her er en kort forklaring på konfigurations-direktiverne.
Hvor vidt du vil tillade vedvarende forbindelse til MySQL.
Det maximale nummer af vedvarende MySQL forbindelser, per proces.
Det maximale nummer af MySQL forbindelser per proces, inklusive vedvarende forbindelser.
Standard TCP port, der bruges til at forbinde til database serveren, hvis der ikke er specificeret nogen port, vil den finde porten fra MYSQL_TCP_PORT miljø variablen , mysql-tcp indgangen i /etc/services eller den valgte konstant til MYSQL_PORT under kompilering, i samme rækkefølge. Win32 vil kun bruge MYSQL_PORT konstanten.
Standard socket, til at forbinde til en lokal database server, hvis ingen anden socket er specificeret.
Standard host, der bliver brugt når man forbinder til en database server, hvis intet andet hostname er specificeret. Virker ikke i safe mode.
Standard brugernavn, der bliver brugt når man forbinder til en database server, hvis intet andet brugernavn er specificeret. Virker ikke i safe mode.
Standard password, der bliver brugt når man forbinder til en database server, hvis intet andet password er specificeret. Virker ikke i safe mode.
Forbindelses timeout i sekunder. På Linux er denne timeout også brugt til at vente på det første svar fra serveren.
Der er to ressourcer der bliver brugt i MySQL modulet. Den første er en link beskriver for forbindelsen, den anden er en resource, der indeholder resultatet af en forespørgsel.
Konstanterne nedenunder er defineret af denne udvidelse, og vil kun være tilgængelige når denne udvidelse enten er blevet kompileret ind i PHP eller dynamisk indsat under runtime.
Siden PHP 4.3.0 har det været muligt at specificere yderligere MySQL klient konstanter for mysql_connect() og mysql_pconnect() funktionerne. Følgende konstanter er defineret:
Tabel 2. MySQL klient konstanter
Konstant | Beskrivelse |
---|---|
MYSQL_CLIENT_COMPRESS | Brug kompressions protokol |
MYSQL_CLIENT_IGNORE_SPACE | Tillad mellemrum efter funktions navne |
MYSQL_CLIENT_INTERACTIVE | Tillad interactive_timeout sekunder (i stedet for wait_timeout) af inaktivitet, inden forbindelsen lukkes. |
MYSQL_CLIENT_SSL | Brug SSL kryptering. Dette flag er kun tilgængelig i version 4.x af klient biblioteket, eller nyere. PHP4 og Windows versionen af PHP5 kommer med Version 3.23.x af klient biblioteket. |
Funktionen mysql_fetch_array() bruger en konstant for forskellige typer af resulterende arrays. følgende konstanter er defineret:
Tabel 3. MySQL fetch konstanter
Konstant | Beskrivelse |
---|---|
MYSQL_ASSOC | Kolonner er returneret ind i arrayet, hvor de har samme feltnavn som array indekset. |
MYSQL_BOTH | Kolonner er returneret ind i arrayet, hvor de både har et numerisk indeks, samt samme feltnavn som array indekset. |
MYSQL_NUM | Kolonner er returneret ind i arrayet, hvor de har et numerisk indeks. Dette indeks starter med 0 som det første felt i resultatet. |
Dette simple eksempel, viser hvordan man forbinder til databaser, eksekverer en forespørgsel, printer de resulterende rækker og lukker forbindelsen igen.