Funkcje MySQL

mysql_fetch_lengths

mysql_fetch_lengths — Pobiera długość każdego pola w wierszu wyniku

Opis

 

array mysql_fetch_lengths(int result);

 

Zwraca: Tablicę zawierającą długość każdego pola z wiersza ostatnio pobranego przez mysql_fetch_row, lub fałsz, jeżeli wystąpi błąd.

mysql_fetch_lengths zapisuje w tablicy długości wszystkich pól z ostatniego wiersza pobranego przez funkcje mysql_fetch_row, mysql_fetch_array i mysql_fetch_object zaczynając od ofsetu 0.

Patrz także: mysql_fetch_row.

mysql_fetch_object

mysql_fetch_object — Zapisuje wiersz wyniku jako obiekt

Opis

 

object mysql_fetch_object(int result, int [result_typ] );

 

Zwraca: obiekt, którego właściwości zawierają pobrany wiersz, lub fałsz, jeżeli nie ma więcej wierszy.

mysql_fetch_object jest podobna do funkcji mysql_fetch_array z jedną różnicą - zamiast tablicy zwracany jest obiekt. Oczywiście oznacza to, że dane dostępne są tylko przez podanie nazw pól, a nie przed podanie ofsetu (liczby nie są dopuszczalne jako nazwy właściwości).

Opcjonalny argument result_typ jest stałą i może przyjmować następujące wartości: MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH.

Szybkość tej funkcji jest identyczna jak mysql_fetch_array i prawie taka sama jak mysql_fetch_row (różnica jest niezauważalna).

Przykład 1. mysql fetch object

<?php mysql_connect($host,$user,$password); $result = mysql_db_query("database","select * from table"); while($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; } mysql_free_result($result); ?>

 

Patrz także: mysql_fetch_array and mysql_fetch_row.

mysql_fetch_row

mysql_fetch_row — Zapisuje wiersz wyniku w tablicy wyliczeniowej

Opis

 

array mysql_fetch_row(int result);

 

Zwraca: Tablicę zawierającą wiersz lub fałsz jeżeli nie ma więcej wierszy.

mysql_fetch_row pobiera jeden wiersz danych z wyniku skojarzonego z podanym identyfikatorem wyniku. Wiesz zwracany jest jako tablica. Komórki są umieszczone pod oddzielnymi ofsetami, zaczynając od 0.

Kolejne wywołanie mysql_fetch_row zwróci następny wiersz z wyniku, lub fałsz jeżeli nie ma więcej wierszy.

Patrz także: mysql_fetch_array, mysql_fetch_object, mysql_data_seek, mysql_fetch_lengths, and mysql_result.

mysql_field_name

mysql_field_name — Podaje nazwę danego pola w wyniku.

Opis

 

string mysql_field_name(int result, int field_index);

 

mysql_field_name zwraca nazwę danego pola. Argumentami funkcji są identyfikator wyniku i indeks pola, np. mysql_field_name($result,2);

zwróci nazwę drugiego pola w wyniku skojarzonym z podanym identyfikatorem wyniku.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_fieldname

mysql_field_seek

mysql_field_seek — Przesuwa wskaźnik wyniku do wybranego pola

Opis

 

int mysql_field_seek(int result, int field_offset);

 

Przesuwa się na wybrane pole. Jeżeli kolejne wywołanie mysql_fetch_field nie będzie zawierać indeksu pola, wtedy zwrócone zostanie to pole.

Patrz także: mysql_fetch_field.

mysql_field_table

mysql_field_table — Pobiera nazwę tabeli w której znajduje się dane pole

Opis

 

string mysql_field_table(int result, int field_offset);

 

Pobiera nazwę tabeli z danym polem. Dla zachowania zgodności w dół użyta może być również funkcja mysql_fieldtable

mysql_field_type

mysql_field_type — Pobiera typ podanego pola w wyniku

Opis

 

string mysql_field_type(int result, int field_offset);

 

mysql_field_type jest podobna do funkcji mysql_field_name. Argumenty są identyczne, ale zwracany jest typ pola. Będzie to jeden z "int", "real", "string", "blob" lub innych opisanych w dokumentacji MySQL.

Przykład 1. Użycie mysql_field_type

<?php mysql_connect("localhost:3306"); mysql_select_db("wisconsin"); $result = mysql_query("SELECT * FROM onek"); $fields = mysql_num_fields($result); $rows = mysql_num_rows($result); $i = 0; $table = mysql_field_table($result, $i); echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>"; echo "The table has the following fields <BR>"; while ($i < $fields) { $type = mysql_field_type ($result, $i); $name = mysql_field_name ($result, $i); $len = mysql_field_len ($result, $i); $flags = mysql_field_flags ($result, $i); echo $type." ".$name." ".$len." ".$flags."<BR>"; $i++; } mysql_close(); ?>

 

Dla zachowania zgodności w dół użyta może być również funkcja mysql_fieldtype.

mysql_field_flags

mysql_field_flags — Pobiera flagi dla danego pola w wyniku

Opis

 

string mysql_field_flags(int result, int field_offset);

 

mysql_field_flags zwraca flagi podanego pola. Flagi są przedstawiane jako pojedyncze słowa oddzielone spacją tak, by można było je rodzielić za pomocą funkcji explode.

Następujące flagi są przedstawiane jeżeli wersja MySQLa jest na tyle aktualna by je obsłużyć: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Dla zachowania zgodności w dół użyta może być również funkcja mysql_fieldflags.

mysql_field_len

mysql_field_len — Zwraca długość danego pola

Opis

 

int mysql_field_len(int result, int field_offset);

 

mysql_field_len zwraca długość podanego pola. Dla zachowania zgodności w dół użyta może być również funkcja mysql_fieldlen.

mysql_free_result

mysql_free_result — Zwalnia pamięć zajmowaną przez wynik

Opis

 

int mysql_free_result(int result);

 

mysql_free_result używa się tylko w wypadkach obawy zajęcia zbyt dużej ilości pamięci podczas pracy skryptu. Cała pamięć przydzielona wynikowi skojarzonemu z podanym identyfikatorem wyniku będzie automatycznie zwolniona.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_freeresult.

mysql_insert_id

mysql_insert_id — Podaje numer id wygenerowany podczas ostatniej operacji INSERT.

Opis

 

int mysql_insert_id(int [id_polaczenia] );

 

mysql_insert_id zwraca ID wygenerowane dla pola z właściwością AUTO_INCREMENT. Funkcja zwróci ID wygenerowane automatycznie przez ostatnią operację INSERT używającą podanego id_polaczenia. Jeżeli id_polaczenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie.

mysql_list_fields

mysql_list_fields — Pobiera informacje o tabeli MySQL

Opis

 

int mysql_list_fields(string database_name, string table_name, int [id_polaczenia] );

 

mysql_list_fields pobiera informacje o danej tabeli. Argumentami są nazwa bazy i nazwa tabeli. Zwracany jest wskaźnik wyniku, który może zostać użyty z funkcjami mysql_field_flags, mysql_field_len, mysql_field_name i mysql_field_type.

Wskaźnik wyniku jest liczbą dodatnią. Funkcja zwraca -1 jeżeli wystąpi błąd. Tekst opisujący błąd bedzie w zmiennej $phperrmsg. Jeżeli funkcja nie została wywołana jako @mysql(), komunikat błędu będzie również wyświetlony.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_listfields.

mysql_list_dbs

mysql_list_dbs — Pobiera nazwy baz dostępnych na serwerze MySQL

Opis

 

int mysql_list_dbs(int [id_polaczenia] );

 

mysql_list_dbs zwróci wynik zawierający nazwy baz dostępnych na serwerze skojarzonym z identyfikatorem połączenia. Żeby uzyskać nazwy za wskaźnika wyniku należy użyć funkcji mysql_tablename.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_listdbs.

mysql_list_tables

mysql_list_tables — Pobiera listę tabel z bazy MySQL

Opis

 

int mysql_list_tables(string database, int [id_polaczenia] );

 

mysql_list_tables przyjmuje jako argument nazwę bazy i zwraca wskaźnik wyniku podobnie jak funkcja mysql_db_query. Żeby uzyskać nazwy tabel za wskaźnika wyniku należy użyć funkcji mysql_tablename.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_listtables.

mysql_num_fields

mysql_num_fields — Zwraca liczbę pól w wyniku

Opis

 

int mysql_num_fields(int result);

 

mysql_num_fields zwraca liczbę pól w wyniku.

Patrz także: mysql_db_query, mysql_query, mysql_fetch_field, mysql_num_rows.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_numfields.

mysql_num_rows

mysql_num_rows — Zwraca liczbę wierszy w wyniku

Opis

 

int mysql_num_rows(int result);

 

mysql_num_rows zwraca liczbę wierszy w wyniku.

Patrz także: mysql_db_query, mysql_query and, mysql_fetch_row.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_numrows.

mysql_pconnect

mysql_pconnect — Otwiera podtrzymywane połączenie z serwerem MySQL

Opis

 

int mysql_pconnect(string [hostname [:port] [:/sciezka/do/gniazda] ] , string [username] , string [password] );

 

Zwraca: Dodatni identyfikator połączenia jeżeli sukces lub komunikat błędu jeżeli niepowodzenie.

mysql_pconnect nawiązuje połączenie z serwerem MySQL. Wszystkie argumenty są opcjonalne i jeżeli ich nie ma brane są wartości domyślne ('localhost', nazwa użytkownika będącego właścicielem procesu serwera, puste hasło).

Argument hostname może również zawierać numer portu, np. "hostname:port" lub ścieżkę do gniaza np. ":/sciezka/fo/gniazda" dla localhost'a.

Notatka: Obsługa ":port" została dodana w PHP 3.0B4.

Obsługa ":/sciezka/do/gniazda" została dodana w PHP 3.0.10.

 

mysql_pconnect zachowuje się prawie jak mysql_connect z dwiema zasadniczymi różnicami.

Pierwsza, podczas łączenia funkcja najpierw spróbuje znaleźć połączenie (podtrzymywane) już otwarte dla tego samego hosta, użytkownika i hasła. Jeżeli je znajdzie, jego identyfikator zostanie zwrócony zamiast otwierania nowego połączenia.

Druga, połączenie z serwerem SQL nie zostanie zamknięte po zakończeniu wykonywania skryptu. Zamiast tego połączenie pozostanie otwarte do późniejszego użycia (mysql_close nie zamyka połączeń nawiązanych za pomocą mysql_close).

Dlatego też ten typ połączeń nazywany jest 'podtrzymywanym'.

mysql_query

mysql_query — Wysyła zapytanie SQL do serwera MySQL

Opis

 

int mysql_query(string zapytanie, int [id_polaczenia] );

 

mysql_query wysyła zapytanie do aktywnej bazy na serwerze skojarzonym z podanym identyfikatorem połączenia. Jeżeli id_polaczenia nie został podany, wykorzystywane jest ostatnio otwarte połączenie. Jeżeli żadne połączenie nie jest otwarte, podejęta zostanie próba ustanowienia go przez wywołanie mysql_connect bez argumentów.

Zapytanie nie powinno kończyć się znakiem średnika.

mysql_query zwraca PRAWDĘ (nie-zero) lub FAŁSZ informując czy zapytanie zakończyło się sukcesem lub też nie. Zwrócona wartość PRAWDA oznacza, że zapytanie było prawidłowe i może być wykonane przez serwer. Nie mówi natomiast nic o liczbie przetworzonych lub zwróconych wierszy. Jest również możliwe, że zapytanie zostanie wykonane poprawnie nie przetwarzając lub zwracając żadnych wierszy.

Następujące zapytanie jest niepoprawne składniowo, dlatego mysql_query zwróci FAŁSZ:

Przykład 1. mysql_query

<?php $result = mysql_query ("SELECT * WHERE 1=1") or die ("Invalid query"); ?>

 

Następujące zapytanie jest niepoprawne semantycznie jeżeli my_col nie jest kolumną w tabeli my_tbl, dlatego mysql_query zwróci FAŁSZ:

Przykład 2. mysql_query

<?php $result = mysql_query ("SELECT my_col FROM my_tbl") or die ("Invalid query"); ?>

 

mysql_query zwróci FAŁSZ również wtedy gdy nie będzie praw dostępu do tabel wyszczególnionych w zapytaniu.

Przyjmując, że zapytanie się powiodło, można użyć mysql_affected_rows by poznać liczbę przetworzonych wierszy (dla instrukcji DELETE, INSERT, REPLACE i UPDATE). Dla instrukcji SELECT, mysql_query zwróci nowy identyfikator wyniku, który można przekazać do funkcji mysql_result w celu uzyskania danych. Po zakończeniu operacji na wyniku, można zwolnić zasoby przez niego wykorzystywane wywołując mysql_free_result.

Patrz także: mysql_affected_rows, mysql_db_query, mysql_free_result, mysql_result, mysql_select_db i mysql_connect.

mysql_result

mysql_result — Zwraca dane wynikowe

Opis

 

int mysql_result(int result, int row, mixed [pole] );

 

mysql_result zwraca zawartość jednej komórki z wyniku MySQL. Jako argument pole można podać ofset, nazwę pola lub nazwę tabeli z nazwą pola (tabela.pole). Jeżeli nazwa kolumny została zastąpiona synonimem ('select foo as bar from...'), użyj tej nazwy zamiast rzeczywistej.

Przy pracy z dużymi wynikami, powinno się rozważyć użycie jednej z funkcji pobierających cały wiersz (patrz niżej). Jako, że funkcje te zwracają zawartość kilku komórek w jednym wywołaniu, są one ZNACZNIE szybsze niż mysql_result. Podanie przesunięcia (offset) w argumencie pole jest znacznie szybsze niż podanie nazwy pola lub konstrukcji tabela.pole.

Wywołania mysql_result nie powinny być mieszane z wywołaniami innych funkcji operujących na wynikach.

Zalecane wydajniejsze akternatywy: mysql_fetch_row, mysql_fetch_array oraz mysql_fetch_object.

mysql_select_db

mysql_select_db — Wybiera bazę MySQL

Opis

 

int mysql_select_db(string database_name, int [id_polaczenia] );

 

Zwraca: prawda jeżeli sukces, fałsz jeżeli błąd.

mysql_select_db ustawia bazę podaną w argumencie jako aktywną na serwerze określonym przez podany identyfikator połączenia. Jeżeli identyfikator nie zostanie podany, zostanie użyte ostatnie otwarte połączenie. Jeżeli żadne połączenie nie jest otwarte funkcja spróbuje je nawiązać wywołując mysql_connect.

Każde późniejsze odwołanie do mysql_query będzie operowć na aktywnej bazie.

Patrz także: mysql_connect, mysql_pconnect, and mysql_query.

Dla zachowania zgodności w dół użyta może być również funkcja mysql_selectdb.

mysql_tablename

mysql_tablename — Zwraca nazwę tabeli

Opis

 

string mysql_tablename(int result, int i);

 

mysql_tablename przyjmuje jako argumenty wskaźnik wyniku zwrócony przez mysql_list_tables oraz liczbę indeksową i zwraca nazwę tabeli. Można użyć funkcji mysql_num_rows do uzyskania liczby nazw tabel przechowywanych we wskaźniku wyniku.

Przykład 1. Użycie Mysql_tablename

<?php mysql_connect ("localhost:3306"); $result = mysql_list_tables ("wisconsin"); $i = 0; while ($i < mysql_num_rows ($result)) { $tb_names[$i] = mysql_tablename ($result, $i); echo $tb_names[$i] . "<BR>"; $i++; } ?>

 

 

Pobrano ze strony:
www.BlueMan.aplus.pl