Deze functies maken toegang tot MySQL database servers mogelijk. Meer informatie over MySQL is te vinden op » http://www.mysql.com/.
Documentatie over MySQL is te vinden op » http://dev.mysql.com/doc/.
Om deze functies te gebruiken moet PHP gecompileerd zijn met ondersteuning voor MySQL.
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.
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
Zijn persistent connections in MySQL toegestaan of niet.
Het maximale aantal persistent MySQL connecties per proces.
Het maximale aantal MySQL connecties per proces, inclusief de persistent connecties.
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.
De standaard socket naam te gebruiken wanneer lokaal een verbinding moet worden gemaakt met een database server indien geen andere socket naam is opgegeven.
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.
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.
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.
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.
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.
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. |
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);
?>