id-połącz - Wyższa Szkoła Techniczno
Transkrypt
id-połącz - Wyższa Szkoła Techniczno
Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 5 dr inż. Jacek Mazurkiewicz e-mail: [email protected] mysql_list_tables – pobranie listy tabel z bazy MySQL resource mysql_list_tables(nazwa_bazy, id-połącz) • wskaźnik nazw tabel danej bazy lub FALSE gdy błąd • uzyskanie nazw ze wskaźnika funkcją mysql_tablename mysql_query – wysłanie zapytania do serwera MySQL resource mysql_query(zapytanie, id-połącz) • jeśli brak id-połącz przyjmowane jest połączenie otwarte ostatnio, jeśli żadne otwarte nie jest – wywoła się mysql_connect domyślnie • zwraca id-wyniku, FALSE gdy błąd – w przypadku polecenia SELECT, brak info o liczbie przetworzonych lub zwróconych wierszy mysql_select_db – wybór bazy MySQL bool mysql_select_db(nazwa_bazy, id-połącz) • jeśli brak id-połącz przyjmowane jest połączenie otwarte ostatnio, jeśli żadne otwarte nie jest – wywoła się mysql_connect domyślnie • TRUE gdy sukces, FALSE gdy błąd, kolejne wywołania dotyczą aktywnej bazy danych mysql_field_name – podanie nazwy danego pola wyniku string mysql_field_name(resource_wynik, indeks_pola) • indeks pola liczony jest od zera mysql_fetch_array – wiersz wyniku do tablicy array mysql_fetch_array(resource_wynik) • zwraca tablicę zawierającą jeden wiersz wyniku, kolejne wywołanie zwraca następny wiersz, FALSE gdy nie ma kolejnych wierszy • oprócz indeksów numerycznych są indeksy asocjacyjne – nazwy pól tablic • jeśli nazwy pól są jednakowe – prawidłowy dostęp tylko numeryczny mysql_create_db – utworzenie nowej bazy danych bool mysql_create_db(nazwa_bazy, id-połącz) • jeśli brak id-połącz przyjmowane jest połączenie otwarte ostatnio, jeśli żadne otwarte nie jest – wywoła się mysql_connect domyślnie • TRUE gdy sukces, FALSE gdy błąd <HTML> <HEAD> <TITLE>Przykład pobierania danych z bazy MySQL</TITLE> </HEAD> <BODY> <?php if (!($polaczenie = mysql_connect(”localhost”, ”dino”, ”kuku”))) die(”Brak połączenia”); if (!mysql_select_db(”Student”, $polaczenie)) die(”Nie można wybrać bazy”); $pytanie = ”SELECT num_stud AS Identyfikator, nazwisko AS Nazwisko, imie AS Imie FROM Studenci ORDER BY nazwisko, imie”; $wynik = mysql_query($pytanie, $polaczenie); $ile = mysql_num_rows($wynik); $pola = mysql_num_fields($wynik); ?> <TABLE> <TR> <?php for ($i =0; $i < $pola; $i++) // wyświetl nagłówki kolumn { echo mysql_field_name($wynik, $i); } ?> </TR> <?php while ($dane = mysql_fetch_row($wynik)) { for ($k =0; $k < $pola; $k++) { echo ”$dane[$k]”; // wyświetla kolejne wiersze wyniku } } <?php ?> $new_db = "testtest"; </TABLE> $connection = @mysql_connect("localhost", "inr", "1N") </BODY> or die("Brak polaczenia"); </HTML> $result = @mysql_create_db($new_db, $connection) or die("Nie udało się utworzyć bazy"); if ($result) { $msg = "<P>Baza danych utworzona!</P>"; } ?> <HTML> <HEAD> Nowa <TITLE>Tworzenie nowej bazy danych</TITLE> </HEAD> Baza <BODY> Danych <?php echo "$msg"; ?> </BODY> </HTML> mysql_change_user – zmiana użytkownika bool mysql_change_user(user, password, baza, id-połącz) • zmiana użytkownika w aktywnym połączeniu lub połączeniu, którego identyfikator podano, jeśli jest nazwa bazy – ta będzie aktywna, jeśli nie pozostanie bieżąca mysql_affected_rows – liczba przetworzonych wierszy int mysql_affected_rows(id-połącz) • zwraca liczbę wierszy przetworzonych w ostatniej operacji INSERT, UPDATE, DELETE, jeśli brak id-połącz – ostatnie otwarte połączenie • ma zastosowanie do operacji modyfikujących rekordy • może podawać nieprawidłowe wyniki dla operacji SELECT mysql_drop_db – usunięcie bazy danych bool mysql_drop_db(nazwa_bazy, id-połącz) • TRUE gdy sukces, FALSE gdy błąd mysql_data_seek – przesunięcie wskaźnika wyniku bool mysql_data_seek(resource_wynik, int nr_wiersza) • przesunięcie wskaźnika na wskazany numer wiersza wyniku, następne wywołanie mysql_fetch_row zwróci ten wiersz • numer wiersza liczony od zera mysql_tablename – zwraca nazwę tabeli string mysql_tablename(resource_wynik, int i) • wskaźnik wyniku zwrócony przez mysql_list_tables oraz indeks tabeli • liczba tabel może być określona poprzez mysql_num_rows mysql_field_table – pobranie nazwy tabeli poprzez pole string mysql_field_table(resource_wynik, int offset_pola) • pobiera nazwę tabeli w której znajduje się pole mysql_free_result – zwolnienie pamięci wskaźnika bool mysql_free_result(resource_wynik) • do użycia przy pytaniach generujących dużo danych <?php $connection = @mysql_connect("localhost", "inter", "1N") or die("Brak polaczenia"); mysql_select_db(”baza”); $result = @mysql_query(”SELECT * FROM tabela”, $connection) or die(”Zapytanie błędne"); // pobranie danych o kolumnie $i = 0; while ($i < mysql_num_field($result)) { echo ”Informacje o kolumnie $i:<br>\n”; $meta = mysql_fetch_field($result); if (!$meta) { echo ”informacje niedostępne<br>\n”; } echo ”<PRE> blob: $meta->blob </PRE>”; max_lenght: $meta->max_lenght $i++; multiple_key: $meta->multiple_key } name: $meta->name mysql_free_result($result); not_null: $meta->not_null ?> numeric: $meta->numeric primary_key: $meta->primary_key table: $meta->table type: $meta->type unique_key: $meta->unique_key unsigned: $meta->unsigned zerofill: $meta->zerofill <?php $link = mysql_connect(”localhost”, ”dino”, ”1N”); $fields = mysql_list_fields(”baza”, ”tabela”, $link); $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { echo mysql_field_name($fields, $i) . ”\n”; } ?> <?php $link = mysql_connect(”localhost”, ”dino”, ”1N”); $result = mysql_list_tables(”baza”, $link); $i = 0; for ($i = 0; $i < mysql_num_rows($result); $i++) { $tb_names[$i] = mysql_tablename($result, $i); echo $tb_names[$i] . ”<BR>”; } ?> <?php $db_name = "piesio"; $table_name = "ksiazki"; $connection = @mysql_connect("localhost", "dino", „1N") or die("Brak polaczenia"); $db = @mysql_select_db($db_name, $connection) or die("Wybor nieudany"); $sql = "SELECT * FROM $table_name ORDER BY cena "; $result = @mysql_query($sql, $connection) or die("Zapytanie nieudane"); while ($row = mysql_fetch_array($result)) { $isbn = $row['isbn']; $autor = $row['autor']; $tytul = $row['tytul']; $cena = $row['cena']; $display_block .= " <P><strong>$autor</strong> - $tytul<br> <em>ISBN: $isbn</em> Cena: $cena</P> "; } ?> <HTML> <HEAD> <TITLE>Dodawanie nowego rekordu</TITLE> </HEAD> <BODY> <H1>Wstawianie rekordu</H1> <FORM ACTION="wstaw.php" METHOD="POST"> <TABLE BORDER=0> <tr><td>ISBN</td><td><input type=char name=isbn maxlength=13 size=13><br></td></tr> <tr><td>Autor</td><td><input type=char name=autor maxlength=50 size=50><br></td></tr> <tr><td>Tytul</td><td><input type=char name=tytul maxlength=60 size=60><br></td></tr> <tr><td>Cena</td><td><input type=char name=cena maxlength=7 size=7><br></td></tr> <tr><td colspan=2><input type=submit value="Dodaj"></td></tr> </TABLE> </FORM> </BODY> </HTML> <HTML> <HEAD> <TITLE>Efekt wstawiania nowego rekordu</TITLE> </HEAD> <BODY> <H1>Rezultat wstawiania nowego rekordu</H1> <?php if ((!$isbn) || (!$autor) || (!$tytul) || (!$cena)) { echo "Nie ma wszystkich danych<br>"; exit; } $connection = @mysql_connect("localhost", "dino", ”1N") or die("Brak lacznosci"); $db_name = "piesio"; mysql_select_db($db_name, $connection); $sql = " insert into ksiazki values (\"$isbn\", \"$autor\", \"$tytul\", \"$cena\") "; $result = @mysql_query($sql, $connection) or die("Zapytanie chybione"); if ($result) { echo mysql_affected_rows()." rekordow dopisanych"; } ?> </BODY> </HTML> mysql_field_type – pobiera typ pola string mysql_field_type(resource_wynik, int offset_pola) • zwraca łańcuch z opisem typu pola – typy zgodne z dokumentacją MySQL • numer pola liczony od zera mysql_field_name – pobiera nazwę pola string mysql_field_name(resource_wynik, int offset_pola) • zwraca łańcuch z nazwą pola • numer pola liczony od zera mysql_field_len – pobiera wielkość pola pola int mysql_field_len(resource_wynik, int offset_pola) • zwraca liczbę – wielkość pola • numer pola liczony od zera mysql_free_result – zwolnienie pamięci wskaźnika bool mysql_free_result(resource_wynik) • do użycia przy pytaniach generujących dużo danych <?php $connection = @mysql_connect("localhost", "inter", "1N") or die("Brak polaczenia"); mysql_select_db(”baza”); $result = @mysql_query(”SELECT * FROM tabela”, $connection) or die(”Zapytanie błędne"); $fields = mysql_num_fields($result); $rows = mysql_num_rows($result); $i = 0; $table = mysql_field_table($result, $i); echo ”Tabela ‘”.$table.”’ ma ”.$fields.” pol i ”.$rows.” wierszy <BR>” echo ”Tabela ma następujące pola <BR>”; while ($i < $fields) { $type = mysql_field_type($result, $i); $name = mysql_field_name($result, $i); $len = mysql_field_len($result, $i); echo $type.” ”.$name.” ”.$len.”<BR>”; $i++; <?php } ?> $link = mysql_connect(”localhost”, ”dino”, ”1N”); $fields = mysql_list_fields(”baza”, ”tabela”, $link); $columns = mysql_num_fields($fields); for ($i = 0; $i < $columns; $i++) { echo mysql_field_name($fields, $i) . ”\n”; } ?> mysql_get_client_info – info o kliencie MySQL string mysql_get_client_info(void) • zwraca łańcuch znaków zawierający wersję bibliotek klienta MySQL mysql_get_host_info – info o hoście MySQL string mysql_get_host_info([id-połącz]) • zwraca łańcuch typem połączenia, brak id-połącz – ostatnio otwarte połączenie mysql_get_proto_info – info o protokole MySQL int mysql_get_proto_info([id-połącz]) • zwraca liczbę – wersję protokołu, brak id-połącz – ostatnio otwarte połączenie mysql_get_server_info – info o serwerze MySQL int mysql_get_server_info([id-połącz]) • zwraca liczbę – wersję serwera, brak id-połącz – ostatnio otwarte połączenie