MySQL Functions
Úvod
Tieto funkcie umožňujú pristupovať k databázovým serverom MySQL. Bližši informácie o MySQL možno nájsť na » https://www.mysql.com/.
Dokumentácia k MySQL sa nachádza na » https://dev.mysql.com/doc/.
Požiadavky
Aby boli tieto funkcie k dispozícii, je potrebné skompilovať PHP s podporou MySQL.
Inštalácia
Použitím konfiguračnej možnosti --with-mysql[=DIR] povolíte prístup PHP k databázam MySQL. Ak použijete túto možnosť bez špecifikovania cesty k MySQL (parameter DIR) PHP použije vlastné interné klientské knižnice MySQL. Vo verziách PHP 4 je podpora MySQL vždy povolená. Ak nie je konfiguračná možnosť špecifikovaná, použijú sa knižnice dodávané s PHP. Užívatelia, ktorí používajú ďalšie aplikácie využívajúce MySQL (napr. prevádzkujú PHP 3 a PHP 4 ako konkurentné moduly servera Apache; alebo auth-mysql) by mali vždy uviesť cestu k MySQL: --with-mysql=/cesta/ku/mysql. Týmto nastavením bude PHP prinútené používať klientské knižnice nainštalované spolu s MySQL, čím sa predíde prípadným konfliktom.
Windows verzie PHP majú vstavanú podporu pre toto rozšírenie. Nemusíte načítať žiadne dodatočné rozšírenie, aby ste mohli tieto funkcie používať.
Pri načítavaní tejto nadstavby súčasne s nadstavbou recode môžu nastať pády, či problémy pri spúšťaní PHP. Bližšie informácie možno nájsť v sekcii o nadstavbe. recode.
Runtime Konfigurácia
Správanie tejto funkcie je ovplyvnené nastaveniami v php.ini.
Názov | Implicitne | Meniteľnosť |
---|---|---|
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 |
Uvádzame krátke vysvetlenie konfiguračných direktív
- mysql.allow_persistent boolean
-
Určuje, či budú povolené perzistentné pripojenia k MySQL.
- mysql.max_persistent integer
-
Maximálny počet perzistentných pripojení k MySQL pre jeden proces.
- mysql.max_links integer
-
Maximálny počet pripojení k MySQL, vrátanie perzistentných pripojení.
- mysql.default_port string
-
Implicitný port TCP, ktorý sa bude používať na pripojenie k databázovému serveru, ak nie je v pripojení špecifikovaný port. V prípade, že nie je definovaná žiadna implicitná hodnota, port sa zistí z premennej prostredia MYSQL_TCP_PORT, ďalej z položky mysql-tcp v súbore /etc/services a nakoniec z hodnoty konštanty MYSQL_PORT zadanej pri kompilácii, a to v uvedenom poradí. Na platforme Win32 sa bude zisťovať len hodnota konštanty MYSQL_PORT.
- mysql.default_socket string
-
Implicitný názov socketu, ktorý sa použije na pripojenie k lokálnemu databázovému serveru, ak nie je pri pripájaní špecifikovaný socket.
- mysql.default_host string
-
Implicitný názov hostiteľského servera, ku ktorého databáze sa bude pripájať, ak nie je pri pripájaní špecifikovaný iný hostiteľ. Táto nastavenie nie je použiteľné v režime safe mode.
- mysql.default_user string
-
Implicitné meno užívateľa, ktoré sa bude používať, v pripojení k databázovému serveru, ak nie je pri pripájaní špecifikované iné meno. Toto nastavenie nie je použiteľné v režime safe mode.
- mysql.default_password string
-
Implicitné heslo, ktoré sa bude používať na pripojenie k databázovému serveru, ak nie je pri pripájaní špecifikované iné heslo. Toto nastavenie nie je použiteľné v režime safe mode.
- mysql.connect_timeout integer
-
Časový limit odpojenia pri neaktivite v sekundách. V systéme Linux je tento časový limit použitý aj pri čakaní na prvú odpoveď servera.
Typy zdrojov
V moduli MySQL sú využívané dva typy zdrojov (resources). Prvým je identifikátor pripojenia k databáze a druhým je zdroj, ktorý uchováva výsledok dopytu.
Preddefinované Konštanty
Konštanty uvedené nižšie sú definované týmto rozšírením a budú dostupné iba keď rozšírenie bolo buď kompilované do PHP alebo dynamicky načítané za behu (runtime).
Od verzie PHP 4.3.0 je možné špecifikovať dodatočné príznaky pre klienta pri používaní funkcií mysql_connect() a mysql_pconnect() Definované sú nasledovné konštanty:
konštanta | popis |
---|---|
MYSQL_CLIENT_COMPRESS | používať komprimačný protokol |
MYSQL_CLIENT_IGNORE_SPACE | povoľovať medzeru za názvami funkcií |
MYSQL_CLIENT_INTERACTIVE | Používať nastavenie interactive_timeout (namiesto wait_timeout) ako interval nečinnosti v sekundách. Po uplynutí tohto intervalu bude spojenie uzatvorené. |
Funkcia mysql_fetch_array() využíva konštanty na špecifikovanie typu polí pre výsledky. Definované sú nasledovné konštanty.
konštanta | popis |
---|---|
MYSQL_ASSOC | Stĺpčeky sú vrátené v poli, pričom indexy tohto poľa tvoria názvy atribútov tabuľky. |
MYSQL_BOTH | Stĺpčeky sú vrátené v poli, pričom indexy tohto poľa tvoria jednak číselné indexy polí tabuliek a jednak názvy atribútov tabuľky. |
MYSQL_NUM | Stĺpčeky sú vrátené v poli, pričom indexy tohto poľa tvoria číselné indexy polí tabuliek. Tento index začína od 0 - tá reprezentuje hodnotu prvého atribútu tabuľky vo výsledku. |
Príklady
Nasledovný jednoduchý príklad ukazuje, ako sa pripojiť k databáze, vykonať dopyt, vytlačiť jednotlivé riadky tvoriace výsledok tohto dopytu a ako sa odpojiť od databázy MySQL.
Example#1 Všeobecný príklad použitia nadstavby MySQL
<?php
/* Pripojíme sa a vyberieme databázu */
$link = mysql_connect("mysql_hostiteľ", "mysql_užívateľ", "mysql_heslo")
or die("Nemožno sa pripojiť");
print "Pripojenie prebehlo úspešne";
mysql_select_db("my_database") or die("Nemožno vybrať databázu");
/* Vykonáme dopyt SQL */
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Dopyt zlyhal");
/* Výpis výsledkov do 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";
/* Uvoľníme premennú obsahujúcu výsledky */
mysql_free_result($result);
/* Ukončíme pripojenie */
mysql_close($link);
?>
Table of Contents
- mysql_affected_rows — Zistí počet riadkov, ktoré boli ovplyvnené predchádzajúcou operáciou.
- mysql_change_user — Change logged in user of the active connection
- mysql_client_encoding — Vráti názov použitej znakovej sady
- mysql_close — Ukončí pripojenie k serveru MySQL
- mysql_connect — Ustanoví pripojenie k serveru MySQL
- 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