Med dessa funktioner kan du ansluta mot MySQL databaser. Mera information om MySQL finns på följande länk » http://www.mysql.com/.
Dokumentation om MySQL finns » här. Känner du att du inte är insatt i MySQL rekommenderas kapitel 3 (i MySQL manualen) varmt, där finns en kort handledning om hur man arbetar med MySQL.
För att använda dessa funktioner måste du bygga PHP med MySQL stöd (detta är inkluderat som standard).
Genom att använda --with-mysql[=DIR] när du konfigurerar PHP så bygger man in stöd för att ansluta mot MySQL databaser.
Vad det gäller PHP 4 så är --with-mysql inkluderat som standard. Vill du inte bygga in MySQL APIn, så använder du --without-mysql som konfigurations alternativ. Om du inte anger en sökväg till din MySQL installation så kommer PHP att använda standard biblioteken som inkluderas. I Windows så finns det ingen DLL, det är helt enkelt inbyggt i PHP 4. Användare som kör andra applikationer vilka också använder MySQL (t.ex. auth-mysql) bör inte använda de inkluderade biblioteken, utan rekomenderas att specifiera sökvägen till deras MySQL installation, som följer: --with-mysql=/path/to/mysql. Detta tvingar PHP att använda klient-biblioteken som MySQL installationen skapar och där med undviks eventuella konflikter.
Från och med PHP 5 är inte längre MySQL inkluderat som standard, inte heller kommer MySQL biblioteken att skeppas tillsammans med PHP. Läs gärna FAQ för ett mera ingående resonemang.
Dessa MySQL bibliotek kommer inte att vara kompatibla med MySQL versioner över 4.1.0. Se MySQLi för detta.
Om man upplever ostabilitet eller problem med uppstarten kan det bero på att man använder recode modulen simultant med MySQL modulen. För vidare information se recode.
Note: Skall du använda en annan teckenuppsätning än latin (standard), måste du installera en extärn (ej inkluderad) libmysql vilken är kompilerad med stöd för rätt teckenuppsättning.
De här funktionernas beteende påverkas av inställningarna i php.ini.
Namn | Standard | Variabel |
---|---|---|
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_SYSTEM |
Här följer en kort förklaring av konfigurationsdirektiven.
Anger om man tilllåts använda bestående anslutningar mot MySQL.
Max antal bestående MySQL anslutningar per process.
Max antal MySQL anslutningar per process, inklusive bestående anslutningar.
TCP-porten som användas per standard för att ansluta mot MySQL tjänsten om inte annat anges. Om ingen standardport anges, kommer först miljövariabeln MYSQL_TCP_PORT att användas. Finns inte denna, så blir det mysql-tcp i /etc/services. Skulle inte heller denna finnas blir det sista alternativet att använda MYSQL_PORT konstanten. Win32 kommer endast att använda MYSQL_PORT konstanten.
Standard namnet på den socket som används för att ansluta till en lokal databasserver när inget annat anges.
Om ingen host anges så kommer den att ansluta till detta hostname som standard. Detta gäller inte safe mode.
Standard användaren som ansluter mot databasen om ingen sådan anges. Detta gäller inte safe mode.
Standard lösenordet som skall användas då annat inte angivits. Detta gäller inte safe mode.
Antal sekunder anslutningen får vara inaktiv innan den avslutas. Under Linux implenenteras även detta värde för att invänta det första svaret från servern.
MySQL modulen bygger på två typer av resurser. Den första identifierar anslutningen/länken mot databasen (se $link nedan). Den andra resursen innehåller resultatet av SQL frågan (se $result nedan).
Konstanterna nedan defineras av den här utbyggnaden, och kommer bara vara tillgängliga då utbyggnaden kompilerats med PHP eller laddats dynamiskt.
Från PHP version 4.3.0 är det möjligt att specifiera extra klient-flaggor för funktionerna mysql_connect() samt mysql_pconnect(). Följande konstanter finns definerade:
Konstant | Beskrivning |
---|---|
MYSQL_CLIENT_COMPRESS | Använd komprimerings protokollet. |
MYSQL_CLIENT_IGNORE_SPACE | Tilllåt blanksteg efter funktion namnet. |
MYSQL_CLIENT_INTERACTIVE | Använd interactive_timeout (istället för wait_timeout) för att bestämma när anslutningen skall stängas för inaktivitet (båda skrivs med sekunder). |
Funktionen mysql_fetch_array() använder en konstant för att hantera resultaten (från SQL frågan) på olika sätt. Följande konstanter finns definerade:
Konstant | Beskrivning |
---|---|
MYSQL_ASSOC | Kolumnerna returneras som associativa listor med kolumnnamnet som index. |
MYSQL_BOTH | Kolumnerna returneras med både ett numeriskt index och ett kolumnnamn som index. |
MYSQL_NUM | Kolumnerna returneras i ordning med ett numeriskt index. Indexet startar alltid på 0, vilket motsvarar den första kolumnen i SQL frågan. |
Exemplet nedan visar hur man på ett enkelt sätt ansluter, skickar en fråga, skriver ut resultatet och avslutar anslutningen mot MySQL databasen.
Example#1 MySQL översikts exempel
<?php
/* Skapa en anslutning, och välj en databas */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Kunde inte ansluta mot databasen: " . mysql_error());
echo "Anslutningen Lyckades!";
mysql_select_db("my_database", $link) or die("Kunde inte välja databasen");
/* Skicka SQL frågan */
$query = "SELECT * FROM my_table";
$result = mysql_query($query, $link) or die("Frågan misslyckades: " . mysql_error());
/* Skriv nu ut 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";
/* Frigör minnet som SQL frågan reserverade */
mysql_free_result($result);
/* Avsluta anslutningen */
mysql_close($link);
?>