MySQL Funktioner
Introduktion
Med dessa funktioner kan du ansluta mot MySQL databaser. Mera information om MySQL finns pÃ¥ följande länk » https://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.
Krav
För att använda dessa funktioner måste du bygga PHP med MySQL stöd (detta är inkluderat som standard).
Installation
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.
Konfiguration under drift
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.
- mysql.allow_persistent boolean
-
Anger om man tilllåts använda bestående anslutningar mot MySQL.
- mysql.max_persistent integer
-
Max antal bestående MySQL anslutningar per process.
- mysql.max_links integer
-
Max antal MySQL anslutningar per process, inklusive bestående anslutningar.
- mysql.default_port string
-
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.
- mysql.default_socket string
-
Standard namnet på den socket som används för att ansluta till en lokal databasserver när inget annat anges.
- mysql.default_host string
-
Om ingen host anges så kommer den att ansluta till detta hostname som standard. Detta gäller inte safe mode.
- mysql.default_user string
-
Standard användaren som ansluter mot databasen om ingen sådan anges. Detta gäller inte safe mode.
- mysql.default_password string
-
Standard lösenordet som skall användas då annat inte angivits. Detta gäller inte safe mode.
- mysql.connect_timeout integer
-
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.
Resurstyper
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).
Fördefinerade konstanter
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. |
Exempel
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);
?>
Table of Contents
- mysql_affected_rows — Get number of affected rows in previous MySQL operation
- mysql_change_user — Change logged in user of the active connection
- mysql_client_encoding — Returns the name of the character set
- mysql_close — Close MySQL connection
- mysql_connect — Open a connection to a MySQL Server
- mysql_create_db — Create a MySQL database
- mysql_data_seek — Move internal result pointer
- mysql_db_name — Get result data
- mysql_db_query — Send a MySQL query
- mysql_drop_db — Drop (delete) a MySQL database
- mysql_errno — Returns the numerical value of the error message from previous MySQL operation
- mysql_error — Returns the text of the error message from previous MySQL operation
- mysql_escape_string — Escapes a string for use in a mysql_query
- mysql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
- mysql_fetch_assoc — Fetch a result row as an associative array
- mysql_fetch_field — Get column information from a result and return as an object
- mysql_fetch_lengths — Get the length of each output in a result
- mysql_fetch_object — Fetch a result row as an object
- mysql_fetch_row — Get a result row as an enumerated array
- mysql_field_flags — Get the flags associated with the specified field in a result
- mysql_field_len — Returns the length of the specified field
- mysql_field_name — Get the name of the specified field in a result
- mysql_field_seek — Set result pointer to a specified field offset
- mysql_field_table — Get name of the table the specified field is in
- mysql_field_type — Get the type of the specified field in a result
- mysql_free_result — Free result memory
- mysql_get_client_info — Get MySQL client info
- mysql_get_host_info — Get MySQL host info
- mysql_get_proto_info — Get MySQL protocol info
- mysql_get_server_info — Get MySQL server info
- mysql_info — Get information about the most recent query
- mysql_insert_id — Get the ID generated from the previous INSERT operation
- mysql_list_dbs — List databases available on a MySQL server
- mysql_list_fields — List MySQL table fields
- mysql_list_processes — List MySQL processes
- mysql_list_tables — List tables in a MySQL database
- mysql_num_fields — Get number of fields in result
- mysql_num_rows — Get number of rows in result
- mysql_pconnect — Open a persistent connection to a MySQL server
- mysql_ping — Ping a server connection or reconnect if there is no connection
- mysql_query — Send a MySQL query
- mysql_real_escape_string — Escapes special characters in a string for use in a SQL statement
- mysql_result — Get result data
- mysql_select_db — Select a MySQL database
- mysql_set_charset — Sets the client character set
- mysql_stat — Get current system status
- mysql_tablename — Get table name of field
- mysql_thread_id — Return the current thread ID
- mysql_unbuffered_query — Send an SQL query to MySQL, without fetching and buffering the result rows