MySQL Functies
Introductie
Deze functies maken toegang tot MySQL database servers mogelijk. Meer informatie over MySQL is te vinden op » https://www.mysql.com/.
Documentatie over MySQL is te vinden op » https://dev.mysql.com/doc/.
Afhankelijkheden
Om deze functies te gebruiken moet PHP gecompileerd zijn met ondersteuning voor MySQL.
Installatie
Door de --with-mysql configuratie optie te gebruiken kan PHP toegang krijgen tot MySQL databases. Als deze optie gebruikt wordt zonder het pad naar MySQL te specificeren, zal PHP de ingebouwde MySQL client libraries gebruiken. Met PHP4 is MySQL ondersteuning altijd aan; als je de configuratie optie niet specificeert, worden de bijgevoegde libraries gebruikt. Gebruikers die andere applicaties draaien die MySQL gebruiken (bijvoorbeeld mensen die PHP 3 en PHP 4 naast elkaar draaien als Apache modules, of auth-mysql) moeten altijd het pad naar MySQL specificeren: --with-mysql=/path/to/mysql. Dit zorgt ervoor dat PHP de client libraries die door MySQL geinstalleerd zijn gebruikt, zodat een conflict voorkomen wordt.
Deze functies worden automatisch ingebouwd in de windows versie van PHP. Er zijn geen extra handelingen nodig om deze functies te gebruiken.
Crashes en problemen met het opstarten van PHP kunnen voorkomen als deze extensie samen met de recode extensie wordt geladen. Zie de recode extensie voor meer informatie.
Configuratie tijdens scriptuitvoer
Het gedrag van deze functies wordt beïnvloed vanuit php.ini.
Naam | Standaard | Veranderbaar |
---|---|---|
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_ALL |
Hieronder volgt een korte uitleg van de configuratie - instructies
- mysql.allow_persistent boolean
-
Zijn persistent connections in MySQL toegestaan of niet.
- mysql.max_persistent integer
-
Het maximale aantal persistent MySQL connecties per proces.
- mysql.max_links integer
-
Het maximale aantal MySQL connecties per proces, inclusief de persistent connecties.
- mysql.default_port string
-
Het standaard TCP poort nummer te gebruiken wanneer een verbinding met de database server gemaakt moet worden als geen poort is opgegeven. Als geen standaard poort is opgegeven dan wordt de poort verkregen (in deze volgorde) van de omgevingsvariabele MYSQL_TCP_PORT, de mysql-tcp regel in /etc/services of de constante MYSQL_PORT tijdens het compileren. Win32 zal alleen de MYSQL_PORT constante gebruiken.
- mysql.default_socket string
-
De standaard socket naam te gebruiken wanneer lokaal een verbinding moet worden gemaakt met een database server indien geen andere socket naam is opgegeven.
- mysql.default_host string
-
De standaard host naam te gebruiken wanneer lokaal een verbinding moet worden gemaakt met een database server indien geen andere socket naam is opgegeven. Dit is niet van kracht bij het gebruik van safe mode.
- mysql.default_user string
-
De standaard gebruikersnaam te gebruiken wanneer een verbinding moet worden gemaakt met een database server indien geen andere naam is opgegeven. Dit is niet van kracht bij het gebruik van safe mode.
- mysql.default_password string
-
Het standaard wachtwoord te gebruiken wanneer een verbinding moet worden gemaakt met een database server indien geen ander wachtwoord is opgegeven. Dit is niet van kracht bij het gebruik van safe mode.
- mysql.connect_timeout integer
-
Pauze (in seconden) bij het verbinden met een database. Bij Linux wordt deze pauze ook gebruikt voor het wachten op een eerste antwoord van de server.
Resource types
De MySQL module gebruikt twee resource typen. De eerste is de link identifier voor een verbinding met een database, de tweede is een resource voor de resultaten van een query.
Voorgedefinieerde constanten
Deze constanten worden gedefinieerd door deze extensie, en zullen alleen beschikbaar zijn als de extensie met PHP is meegecompileerd, of als deze dynamisch is geladen vanuit een script.
Vanaf PHP 4.3.0 is het mogelijk om additionele client opties voor de functies mysql_connect() en mysql_pconnect() in te stellen. De volgende constanten zijn gedefiniëerd:
constante | beschrijving |
---|---|
MYSQL_CLIENT_COMPRESS | Gebruik compressie protocol. |
MYSQL_CLIENT_IGNORE_SPACE | Sta een spatie toe na functienamen. |
MYSQL_CLIENT_INTERACTIVE | Sta interactive_timeout seconden van inactiviteit (in plaats van wait_timeout) toe alvorens een connectie te sluiten. |
De functie mysql_fetch_array() gebruikt een constante voor de verschillende resultaat reeksen. De volgende constanten zijn gedefiniëerd:
constante | beschrijving |
---|---|
MYSQL_ASSOC | Kolommen worden geretourneerd in de reeks waarbij de veldnaam als reeksindex wordt gebruikt. |
MYSQL_BOTH | Kolommen worden geretourneerd in de reeks waarbij zowel de veldnaam als een numerieke index als reeksindex wordt gebruikt. |
MYSQL_NUM | Kolommen worden geretourneerd in de reeks waarbij een numerieke index als reeksindex wordt gebruikt. Deze index begint bij 0, het eerste veld in het resultaat. |
Voorbeelden
Dit simpele voorbeeld laat zien hoe verbinding met een MySQL database tot stand wordt gebracht, er een query wordt uitgevoerd, resulterende rijen worden geprint en hoe de verbinding weer wordt gesloten.
Example#1 MySQL extensie overzicht voorbeeld
<?php
// Verbinding maken, een database selecteren
$link = mysql_connect("mysql_host", "mysql_login", "mysql_password")
or die("Kan geen verbinding maken");
print "Verbinding succesvol gemaakt";
mysql_select_db("my_database")
or die("Kan geen database selecteren");
// Een SQL query uitvoeren
$query = "SELECT * FROM my_table";
$result = mysql_query($query)
or die("Fout bij uitvoeren query");
// Printen resultaten 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";
// Resultaat-set vrij maken
mysql_free_result($result);
// Verbinding afsluiten
mysql_close($link);
?>
Table of Contents
- mysql_affected_rows — Geeft het aantal betrokken rijen in de vorige MySQL operatie
- mysql_change_user — Verander de ingelogde gebruiker van de actieve sessie
- mysql_client_encoding — Geeft de naam van de character set terug
- mysql_close — Sluit MySQL verbinding
- mysql_connect — Maak een verbinding met een MySQL Server
- mysql_create_db — Maakt een nieuwe MySQL database
- mysql_data_seek — Verplaats interne resultaat pointer
- mysql_db_name — Haal resultaat-gegevens
- mysql_db_query — Stuur een MySQL query
- mysql_drop_db — Verwijder een MySQL database
- mysql_errno — Geeft de numerieke waarde van het foutbericht van de vorige MySQL operatie.
- mysql_error — Geeft de tekst van het foutbericht van de vorige MySQL operatie
- mysql_escape_string — Escapet een string voor gebruik in een MySQL query
- mysql_fetch_array — Haal een resultaat rij op als een associatieve array, een numerieke array, of beiden
- mysql_fetch_assoc — Haal een resultaat rij op als een associatieve array
- mysql_fetch_field — Haal kolom informatie uit een resultaat en geef die terug als object
- mysql_fetch_lengths — Haal de lengte op van elke output in een resultaat
- mysql_fetch_object — Haal een resultaat rij op als een object
- mysql_fetch_row — Haal een resultaat rij op als een genummerde array
- mysql_field_flags — Haal de flags op die geassocieerd worden met het gegeven veld in een resultaat
- mysql_field_len — Geeft de lengte van het gegeven veld terug
- mysql_field_name — Haal de naam op van het gegeven veld in een resultaat
- mysql_field_seek — Zet de resultaat pointer op een gegeven veld index
- mysql_field_table — Geef de naam van de tabel waar het gegeven veld in zit
- mysql_field_type — Geef het type van het gegeven veld in een resultaat
- mysql_free_result — Maak geheugen van het resultaat vrij
- mysql_get_client_info — Geef MySQL client info
- mysql_get_host_info — Geef MySQL host info
- mysql_get_proto_info — Geef MySQL protocol info
- mysql_get_server_info — Geef MySQL server info
- mysql_info — Haal informatie op over de recentste query
- mysql_insert_id — Geef het id dat gegenereerd werd door de vorige INSERT query
- mysql_list_dbs — Geef een lijst van beschikbare databases op een MySQL server
- mysql_list_fields — Geef een lijst van MySQL resultaat velden
- mysql_list_processes — Geef een lijst van MySQL processen
- mysql_list_tables — Geef een lijst van tabellen in een MySQL database
- mysql_num_fields — Geef het aantal velden in een resultaat
- mysql_num_rows — Geef het aantal rijen in een resultaat
- mysql_pconnect — Open een persistente verbinding naar een MySQL server
- mysql_ping — Ping een server connectie of maak weer verbinding als er geen verbinding is
- mysql_query — Verstuur een MySQL query
- mysql_real_escape_string — Escapet speciale karakters in een string die wordt gebruikt in een SQL statement, waarbij de huidige charset van de verbinding in het oog wordt gehouden.
- mysql_result — Geef de resultaat data
- mysql_select_db — Selecteer een MySQL database
- mysql_set_charset — Sets the client character set
- mysql_stat — Geef huidige systeem status
- mysql_tablename — Geef de tabelnaam van een veld
- mysql_thread_id — Geef het huidige thread ID terug
- mysql_unbuffered_query — Stuur een SQL query naar MySQL zonder resultaten op te halen en te bufferen