MySQL-funktioner
Introduktion
Disse funktioner giver dig mulighed for at tilgÃ¥ en MySQL-database. Mere information kan findes pÃ¥ » https://www.mysql.com/.
Dokumentationen for MySQL kan findes pÃ¥ » https://dev.mysql.com/doc/.
Systemkrav
For at kunne bruge disse funktioner skal du have kompileret PHP med support for MySQL.
Installation
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.
Installation på Linux Systemer
PHP 4
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 5+
MySQL er ikke aktiveret som standard, lige så er MySQL biblioteket medfølgende i PHP. Læs denne FAQ for nærmere forklaring. Brug --with-mysql[=DIR] compilerings flaget for at inkludere MySQL support.
Installation på Windows Systemer
PHP 4
PHP MySQL modulet er medfølgende i PHP.
PHP 5+
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
Note: 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.
MySQL Installation noter
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.
Note: 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.
Runtime Konfiguration
Virkemåden af disse funktioner er berørt af indstillinger i php.ini.
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 boolean
-
Hvorvidt du vil tillade vedvarende forbindelse til MySQL.
- mysql.max_persistent integer
-
Det maksimale antal af vedvarende MySQL-forbindelser per proces.
- mysql.max_links integer
-
Det maksimale antal af MySQL-forbindelser per proces, inklusive vedvarende forbindelser.
- mysql.trace_mode boolean
-
Nå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 string
-
Standard socket til at forbinde til en lokal database-server, hvis ingen anden socket er specificeret.
- mysql.default_host string
-
Standard 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 string
-
Standard 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 string
-
Standard 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 integer
-
Forbindelsestimeout i sekunder. Under Linux bruges denne timeout også til at vente på det første svar fra serveren.
Ressourcetyper
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.
Foruddefinerede Konstanter
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:
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:
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. |
Eksempler
Dette simple eksempel viser, hvordan man forbinder til databaser, eksekverer en forespørgsel, printer de resulterende rækker og lukker forbindelsen igen.
Example#1 MySQL-udvidelseseksempel
<?php
// Forbinder, vælger database
$link = mysql_connect("mysql_host", "mysql_bruger", "mysql_password")
or die("Kunne ikke forbinde : " . mysql_error());
echo "Forbundet succesfuldt";
mysql_select_db("min_database") or die("kunne ikke vælge databasen");
// Udfører SQL forespørgsel
$query = "SELECT * FROM min_tabel";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
// Printer resultatet i HTML
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
// Befri resultatet fra hukommelseN
mysql_free_result($result);
// Luk forbindelsen
mysql_close($link);
?>
Table of Contents
- mysql_affected_rows — Find ud af hvor mange rækker der blev berørt af sidste MySQL kald
- mysql_change_user — Skiftie bruger på den aktive forbindelse
- mysql_client_encoding — Returnerer det nuværende tegnsæt
- mysql_close — Lukker MySQL forbindelsen
- mysql_connect — Åbner forbindelsen til en MySQL server
- mysql_create_db — Opretter en MySQL database
- mysql_data_seek — Flyt intern resultat reference
- mysql_db_name — Få resultat data
- mysql_db_query — Sender en MySQL forespørgsel
- mysql_drop_db — Sletter en MySQL database
- mysql_errno — Returnerer den nummeriske værdi, af fejlbesked fra forrige MySQL operation
- mysql_error — Returnerer fejl beskrivelsen fra den seneste MySQL operation
- mysql_escape_string — Sikrer en stren til brug i mysql_query
- mysql_fetch_array — Skaber et resultat som et associeret array, et numerisk, eller begge dele.
- mysql_fetch_assoc — Hent et resultat som et associeret array
- mysql_fetch_field — Modtag kolonne information fra et resultat, og returner det som et objekt.
- mysql_fetch_lengths — Tilgå længden af hvert output i et resultat
- mysql_fetch_object — Tilgå en resulterende række som et objekt
- mysql_fetch_row — Returner en række, som et optalt array
- mysql_field_flags — Modtag de flag der er associeret med det specifikke felt i et resultat
- mysql_field_len — Returnerer længden af det specificerede felt
- mysql_field_name — Modtag navnet på det specifikke felt i et resultat
- mysql_field_seek — Sæt resultat beskriveren, til en specifik reference, til et felt
- mysql_field_table — Modtag navnet på tabbellen, det specifikke felt er i
- mysql_field_type — Returnerer typen af det specifikke felt
- mysql_free_result — Befri den resulterende hukommelse
- mysql_get_client_info — Modtag MySQL klient information
- mysql_get_host_info — Modtag MySQL host information
- mysql_get_proto_info — Modtag MySQL-protokolinformation
- mysql_get_server_info — Modtag MySQL server information
- mysql_info — Modtag information om den seneste forespørgsel
- mysql_insert_id — Modtag det ID, der sidst blev genereret af en INSERT forespørgsel
- mysql_list_dbs — List tilgængelige databaser på MySQL serveren
- mysql_list_fields — List felterne i en MySQL tabel
- mysql_list_processes — Udskriv MySQL processer
- mysql_list_tables — Udskriv tabellerne i en MySQL database
- mysql_num_fields — Returnerer nummeret af felter i et resultat
- mysql_num_rows — Returneret nummeret af rækker i et resultat
- mysql_pconnect — Åben en vedvarende forbindelse til en MySQL server
- mysql_ping — Pinger en server-forbindelse eller genopretter en forbindelse, hvis der ikke er nogen
- mysql_query — Sender en MySQL forespørgsel
- mysql_real_escape_string — Sikrer special karakterer i en streng, til brug i en MySQL erklæring
- mysql_result — Modtag resultat data
- mysql_select_db — Vælg en MySQL database
- mysql_set_charset — Sets the client character set
- mysql_stat — Den nuværende system status
- mysql_tablename — Få navnet på entabel
- mysql_thread_id — Returnerer ID'et på den nuværende tråd
- mysql_unbuffered_query — Send en SQL forespørgsel, til MySQL, uden at hente og lagre, rækkerne.