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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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 — 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++;
}
?>
|