Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 5 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl
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 </TABLE> </BODY> </HTML> Nowa Baza Danych <?php $new_db = "testtest"; $connection = @mysql_connect("localhost", "inr", "1N") or die("brak polaczenia"); $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> <TITLE>Tworzenie nowej bazy danych</title> </HEAD> <BODY> <?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 max_lenght: $meta->max_lenght multiple_key: $meta->multiple_key name: $meta->name 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 </PRE> ; $i++; mysql_free_result($result);
<?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