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.
For komilering, brug da
--with-mysql[=DIR]
som kompilerings flag, hvor den valgfrie valgmulighed [DIR] peger på
MySQL installations mappen.
Denne MySQL-udvidelse rummer ikke fuld funktionalitet for MySQL-versioner højere end 4.1.0. Brug MySQLi til det formål.
Hvis du ønsker at installere mysql-udvidelsen, sammen med mysqli-udvidelsen, bliver du nødt til at bruge de samme klientbiblioteker for at undgå konflikter.
Kompilerings flaget --with-mysql
er
som standard aktiveret. Denne standard opførsel kan ændres med
--without-mysql
kompilerings flaget.
Hvis MySQL er aktiveret uden der er defineret stien til MySQL installations mappen
vil oho bruge de medfølgende MySQL klient biblioteker.
Brugere der bruger andre applikationer som bruger MySQL (for eksempel,
auth-mysql) skal ikke bruge det medfølgende bibliotek, men bør
definere stien til MySQL installations mappen, som her:
--with-mysql=/sti/til/mysql
.
Det vil tvinge PHP til at bruge de klient biblioteker der er stillet til
rådighed af MySQL installationen og afværge konflikter.
Du kan downloade inkluderingsfiler og biblioteker fra
MySQL.
PHP MySQL modulet er medfølgende i PHP.
MySQL er ikke længere aktiveret som standard, derfor må
php_mysql.dll DLL-filen være aktiveret i
php.ini. PHP har også brug for adgang til MySQL klient biblioteket. En file
kaldet libmysql.dll ier inkluderet i Windows PHP
versionen og for at PHP kan tale med MySQL må denne fil være tilgængelig i
Windows system PATH
. See FAQ'en
kaldet "How do I add my PHP
directory to the PATH on Windows" for information om hvordan do gør
Dette. Selv om en kopiering af libmysql.dll til Windows system
mappen, også virker (fordi system mappen per standard er System
PATH
), er det ikke anbefalelses værdigt.
Når du aktiverer PHP moduler (så som php_mysql.dll), skal PHP stien extension_dir være sat til den mappe hvor PHP modulerne er lokaliseret. Se også Manuel Windows Installation Instruktioner. Et eksempel på example extension_dir værdi for PHP 5 er c:\php\ext
Bemærk: Hvis du får en opstarts fejl af din web server der ligner: "Unable to load dynamic library './php_mysql.dll'", er det fordi php_mysql.dll og/eller libmysql.dll ikke kan findes af systemet.
Advarsel |
Nedlukning og start problemer med PHP kan ske når du prøver at bruge dette modul sammen med recode modulet. Se recode modulet for mere information. |
Bemærk: Hvis du har brug for andre karaktersæt end latin (standard), bliver du nødt til at installere disse yderligere (de er ikke med) libmysql hvor dene r compilet med support for det pågældende karaktersæt.
Virkemåden af disse funktioner er berørt af indstillinger i php.ini.
Tabel 1. MySQL Konfigurationsmuligheder
Navne | Standard | Udskiftelig | Changelog |
---|---|---|---|
mysql.allow_persistent | "1" | PHP_INI_SYSTEM | |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM | |
mysql.max_links | "-1" | PHP_INI_SYSTEM | |
mysql.trace_mode | "0" | PHP_INI_ALL | Tilgængelig siden PHP 4.3.0. |
mysql.default_port | NULL | PHP_INI_ALL | |
mysql.default_socket | NULL | PHP_INI_ALL | Tilgængelig siden PHP 4.0.1. |
mysql.default_host | NULL | PHP_INI_ALL | |
mysql.default_user | NULL | PHP_INI_ALL | |
mysql.default_password | NULL | PHP_INI_ALL | |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM i PHP <= 4.3.2. Tilgængelig siden PHP 4.3.0. |
Her er en kort forklaring på konfigurations-direktiverne.
mysql.allow_persistent
booleanHvorvidt du vil tillade vedvarende forbindelse til MySQL.
mysql.max_persistent
integerDet maksimale antal af vedvarende MySQL-forbindelser per proces.
mysql.max_links
integerDet maksimale antal af MySQL-forbindelser per proces, inklusive vedvarende forbindelser.
mysql.trace_mode
booleanNår mysql.trace_mode er aktiveret, vil der komme advarsler, for tomme tabeller/indexes, hvori der bliver søgt, og SQL-fejlen vil blive vist. (Introduceret i PHP 4.3.0)
mysql.default_port
string
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.
mysql.default_socket
stringStandard socket til at forbinde til en lokal database-server, hvis ingen anden socket er specificeret.
mysql.default_host
stringStandard host, der bliver brugt, når man forbinder til en database-server, hvis intet andet hostname er specificeret. Virker ikke i SQL safe mode.
mysql.default_user
stringStandard brugernavn, der bliver brugt, når man forbinder til en database-server, hvis intet andet brugernavn er specificeret. Virker ikke i SQL safe mode.
mysql.default_password
stringStandard password, der bliver brugt, når man forbinder til en database-server, hvis intet andet password er specificeret. Virker ikke i SQL safe mode.
mysql.connect_timeout
integerForbindelsestimeout i sekunder. Under Linux bruges denne timeout også 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 ressource, 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-klientkonstanter for mysql_connect()- og mysql_pconnect()-funktionerne. Følgende konstanter er defineret:
Tabel 2. MySQL klientkonstanter
Konstant | Beskrivelse |
---|---|
MYSQL_CLIENT_COMPRESS | Brug kompressionsprotokol |
MYSQL_CLIENT_IGNORE_SPACE | Tillad mellemrum efter funktionsnavne |
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ængeligt i version 4.x eller nyere af klientbiblioteket. PHP4 og Windows-versionen af PHP5 leveres med version 3.23.x af klientbiblioteket. |
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.