Forum und email

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.

Warning

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.

MySQL Configuratie Opties
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
Zie ook ini_set() voor verdere details en de definitie van de PHP_INI_* constanten.

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.

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:

MySQL client constanten
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:

MySQL fetch constanten
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($resultMYSQL_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