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