Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Technologie internetowe II

Podobne prezentacje


Prezentacja na temat: "Technologie internetowe II"— Zapis prezentacji:

1 Technologie internetowe II
Wykład 4 – Typy danych i podstawowe polecenia MySQL. Interakcje PHP z MySQL, łączenie z bazą danych, operowanie na danych. Dr Krzysztof Heller

2 Technologie internetowe II
Literatura Meloni J.C.: PHP, MySQL i Apache dla każdego. Wydanie III, Helion, 2007 Lis M.: PHP i MySQL dla każdego, Helion, 2005 Leszek 'leon' Krupiński: Wykłady internetowe, 2007 Technologie internetowe II

3 Technologie internetowe II
Plan wykładu 4 Typy danych i podstawowe polecenia MySQL. Tworzenie, wybieranie i usuwanie rekordów. Interakcje PHP z MySQL. Łączenie z bazą danych. Operowanie na danych. Technologie internetowe II

4 Typy danych i podstawowe polecenia MySQL

5 Technologie internetowe II
Liczbowe typy danych TINYINT 1-bajtowe pole, przechowujące wartości całkowite bez znaku z przedziału od 0 do 255 lub ze znakiem z przedziału od -127 do 127 SMALLINT 2-bajtowa wartość całkowita. Zakres wartości bez znaku od 0 do lub ze znakiem od do MEDIUMINT 3-bajtowa wartość całkowita. Zakres wartości od 0 do lub ze znakiem od do INT 4-bajtowa wartość całkowita. Zakres wartości ze znakiem od do lub bez znaku od 0 do BIGINT 8-bajtowa wartość całkowita. Typ BIGINT jest używany podczas przeprowadzania obliczeń. Stosując pola tego typu we własnej bazie danych należy uważać, aby ich wartości nie były zbyt duże, ponieważ użyte w obliczeniach mogą doprowadzić do błędu przepełnienia Technologie internetowe II

6 Technologie internetowe II
Liczbowe typy danych FLOAT (dokładność) Liczba zmiennoprzecinkowa z precyzją wyrażaną liczbą bajtów. Dwie wartości akceptowane jako precyzja to 4 i 8. Użycie 4 tworzy liczbę zmiennoprzecinkową o pojedynczej precyzji, natomiast 8 - liczbę zmiennoprzecinkową o podwójnej precyzji. Szczegóły dotyczące tych dwóch typów danych opisują pola FLOAT i DOUBLE FLOAT 4-bajtowa liczba zmiennoprzecinkowa z zakresu od E+38 do E-38, 0 i E-38 do E+38 DOUBLE 8-bajtowa liczba zmiennoprzecinkowa przechowująca wartości z zakresu od E+308 do E-308, 0, i E-308 do E+308 DECIMAL Pole zmiennoprzecinkowe o takiej samej pojemności jak DOUBLE. Liczba, zamiast zostać zredukowana do postaci szesnastkowej, pamiętana jest w formacie znakowym Technologie internetowe II

7 Technologie internetowe II
Typy czasu i daty DATE Data (bez czasu), wyświetlana w formacie RRRR-MM-DD. Akceptuje daty w różnych formatach z zakresu od do DATETIME Pole daty z czasem dnia wyświetlane według formatu RRRR-MM-DD GG:MM:SS. Może przechowywać wartości z zakresu od :00:00 do :59:59 TIMESTAMP Data i czas liczony od początku epoki systemu UNIX, :00:00, do momentu kiedy 32-bitowe pole przechowujące liczbę sekund, jaka upłynęła od tej daty ulegnie przepełnieniu w roku Jeśli polu temu nie została nadana wartość przez wyrażenie INSERT lub UPDATE, domyślnie otrzyma ono wartość daty bieżącej TIME Czas mieszczący się w przedziale od -838:59:59 do 838:59:59 YEAR Rok. Dozwolone wartości to przedział od 1901 do 2155 oraz wartość MySQL wyświetla wartość typu YEAR w formacie RRRR Technologie internetowe II

8 Technologie internetowe II
Typy łańcuchowe CHAR Pole znakowe o stałej długości z zakresu od 1 do 255 bajtów. Po wstawieniu wartości puste miejsca pola CHAR są uzupełniane z prawej strony spacjami VARCHAR Pole znakowe o zmiennej długości z zakresu od 1 do 255 bajtów. Zajmowany jest jedynie taki obszar pamięci, jakiego wymaga wartość wstawiona w to pole TINYBLOB, TINYTEXT Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym 255 bajtów BLOB, TEXT Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym bajtów Technologie internetowe II

9 Typy łańcuchowe MEDIUMBLOB, MEDIUMTEXT Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym bajtów LONGBLOB, LONGTEXT Kolumna binarna lub tekstowa o rozmiarze nie przekraczającym bajtów ENUM('elem1', 'elem2', ...) Kolumna łańcuchowa, która może zawierać jedną z wartości wymienionych na liście wartości w definicji tej kolumny SET('elem1', 'elem2', ...) Kolumna łańcuchowa, która może zawierać dowolną liczbę wartości spośród  wartości występujących na liście w definicji tej kolumny Typ SET jest podobny do typu ENUM w tym sensie, że definiowany jest jako lista, jednak typ SET jest przechowywany jako pełna wartość, a nie jako indeks do wartości, jak w przypadku typu ENUM. Technologie internetowe II

10 Tworzenie, wybieranie i usuwanie rekordów

11 Składnia tworzenia tabel
Tabele zawierają pola, które określają jakie dane będzie zawierał pojedynczy rekord (inaczej: wiersz). Do utworzenia tabeli służy polecenie SQL CREATE TABLE: CREATE TABLE nazwa_tabeli struktura_tabeli; Każda tabela powinna posiadać swoją nazwę. Definiuje się ją w miejscu nazwa_tabeli. W miejsce struktura_tabeli wstawia się dokładną specyfikację poszczególnych pól, jakie powinna zawierać tabela. Technologie internetowe II

12 Technologie internetowe II
Tworzenie tabeli CREATE TABLE pracownicy (   imie VARCHAR(30),   nazwisko VARCHAR(30),   data_urodzenia DATE,    placa DECIMAL(10,2) ); Tworzy tablicę o strukturze: Technologie internetowe II

13 Technologie internetowe II
Utworzona tabela Field Type Null Key Default Extra imie varchar(30) YES NULL nazwisko data_urodzenia date placa decimal(10,2) Technologie internetowe II

14 Definicje kolumn: opcje
Opcje mogące wystąpić w definicji kolumny w instrukcji CREATE TABLE dzielą się na: opcje ogólne, które mogą być stosowane do (prawie) wszystkich typów kolumn opcje szczególne, stosujące się do niektórych (klas) typów. Opcje szczególne muszą być podane w pierwszej kolejności (bezpośrednio po określeniu typu). Niektóre z tych opcji wykluczają się wzajemnie, np. PRIMARY KEY i NULL. Technologie internetowe II

15 Definicje kolumn: opcje
PRIMARY KEY: określa daną kolumnę jako klucz główny tabeli. Tabela może posiadać tylko jeden klucz główny. DEFAULT wartość_domyślna: określa wartość domyślną kolumny dla nowo wprowadzanych wierszy w przypadku, gdy instrukcja tworząca nowy wiersz nie zadaje tej wartości. Jeśli w definicji kolumny pominięto opcję DEFAULT (oraz nie podano opcji NOT NULL), to w takich wypadkach wartością domyślną jest NULL. Jeżeli natomiat kolumna bez opcji DEFAULT została zadeklarowana jakoNOT NULL, to w miejsce brakującej wartości zostanie automatycznie wprowadzona przez MySQL wartość domyślna zależna od typu. NOT NULL | NULL: określa, czy NULL jest dopuszczalną wartością w tej kolumnie. Domyślnie wartość NULL jest dopuszczalna, za wyjątkiem kluczy (kolumn indeksowanych). AUTO_INCREMENT: opcja ta ma sens dla kolumn o numerycznych typach wartości. Oznacza ona, że jeżeli przy tworzeniu wiersza nie zada się jawnie wartości dla tej kolumny (lub zostanie podana wartość NULL bądź zero), to wartością zapisaną będzie największa z wcześniej występujących w tej kolumnie powiększona o jeden. Technologie internetowe II

16 Definicje kolumn: opcje
UNSIGNED: opcja ta stosuje się do typów numerycznych i oznacza, że dopuszczone są wyłącznie wartości nieujemne. Zastosowanie jej zwiększa również zakres dopuszczalnych wartości (dodatnich) w sposób zależny od konkretnego typu numerycznego. ZEROFILL: stosuje się do typów opisujących liczby całkowite. Powoduje dopełnienie pola danych zerami do jego maksymalnej długości. BINARY: stosuje się do typów CHAR i VARCHAR. W MySQL sortowanie i porównywanie wartości znakowych odbywa się domyślnie z utożsamieniem małych i wielkich liter (zgodnie z kodowaniem ISO ). Opcja BINARY wyłącza to utożsamienie dla danej kolumny. Technologie internetowe II

17 Definicja tabeli: deklaracje dodatkowe
PRIMARY KEY (nazwa_kolumny_indeksowej, ...): klucz główny w tabeli może być tylko jeden, ale może obejmować więcej niż jedną kolumnę. Wówczas cały zestaw wartości z odpowiednich kolumn traktowany jest jako wartość klucza głównego. KEY [nazwa_indeksu] (nazwa_kolumny_indeksowej, ..): deklaruje indeksowanie ze względu na wartości z odpowiednich kolumn. Indeks może być nazwany (zgodnie z wcześniej omówionymi regułami tworzenia nazw). Wartości klucza indeksowania nie mogą być NULL. W MySQL istnieje możliwość zadeklarowania długości klucza indeksowania, w postacikolumna(długość), mniejszej niż długość pola danych odpowiedniej kolumny. Wówczas do tworzenia indeksu wykorzystana jest jedynie część pola danych, co owocuje czasami o wiele mniejszymi (w sensie zużycia miejsca na dysku) i szybciej przeszukiwanymi indeksami. Kolumna typu BLOB nie może być indeksowana. INDEX [nazwa_indeksu] (nazwa_kolumny_indeksowej, ...): deklaracja ta jest synonimem dla KEY. UNIQUE [nazwa_indeksu] (nazwa_kolumny_indeksowej, ...): deklaruje indeks o nie powtarzających się wartościach. Technologie internetowe II

18 Technologie internetowe II
Polecenie INSERT Polecenie INSERT służy do wypełnienia tabeli danymi po utworzeniu. INSERT INTO pracownicy VALUES ('Jan', 'Kowalski', ' ', ' '); Powyższe polecenie wstawi pojedynczy rekord do tabeli pracownicy. Aby wstawić kolejne rekordy należy ponowić powyższe zapytanie używając nowych danych: INSERT INTO pracownicy VALUES ('Aleksander', 'Borowiecki', ' ',  ' '); INSERT INTO pracownicy VALUES ('Aniela', 'Michałkowska', ' ', '854.29'); INSERT INTO pracownicy VALUES ('Katarzyna', 'Kowalska', ' ', ' '); Polecenia INSERT można użyć także w innej formie. Za nazwą tabeli można wyspecyfikować listę pól, które będzią wypełniane danymi. Pozostałe pola przyjmą puste lub standardowe wartości. Zapytanie z wyspecyfikowaną listą pól wygląda następująco: INSERT INTO pracownicy (imie, nazwisko) VALUES ('Izabela', 'Kwiatkowska'); Technologie internetowe II

19 Technologie internetowe II
Polecenie SELECT Aby pobrać dane zapisane w tabeli należy użyć zapytania SELECT. Jego postać ogólna prezentuje się następująco: SELECT co_zaprezentować FROM nazwa_tabeli   [WHERE warunki_wyszukiwania]   [ORDER BY sortowanie [ASC | DESC], ...]   [LIMIT [ofset,] ilość_wierszy]; W miejscu co_zaprezentować należy podać (po przecinku) listę kolumn, które mają być w zestawieniu. W miejscu nazwa_tabeli podać nazwę tabeli, z której mają być pobierane dane. Technologie internetowe II

20 Technologie internetowe II
Polecenie SELECT Wybór trzech kolumn do zestawienia z tabeli pracownicy wygląda następująco: SELECT imie, nazwisko, placa FROM pracownicy; Spowoduje to wyświetlenie wszystkich rekordów, jednak w zestawieniu zostaną zaprezentowane jedynie wartości trzech pól: imie, nazwisko i placa Aby w zestawieniu umieścić wszystkie pola można użyć w miejscu co_zaprezentować znaku '*' (gwiazdki): SELECT * FROM pracownicy; Technologie internetowe II

21 Technologie internetowe II
Polecenie SELECT Dzięki klauzuli WHERE można wpłynąć na zakres prezentowanych danych - dokładnie definiować co chce się uzyskać swoim zapytaniem. Klauzulę WHERE stosuje się najczęściej w poleceniu SELECT. Ma ona jednak zastosowanie także w innych poleceniach operujących na danych, takich jak UPDATE, DELETE itp. Stosując operatory przyrównania można dokładnie określić, jakie informacje chce się pobrać. Dozwolone w MySQL operatory przyrównania to: = równe > większe >= większe równe < mniejsze <= mniejsze równe <> lub != różne LIKE służy głównie do porównywania danych łańcuchowych Technologie internetowe II

22 Technologie internetowe II
Polecenie SELECT Przykłady zastosowania: SELECT * FROM pracownicy WHERE placa >= 1000; Spowoduje wyświetlenie listy pracowników, których płaca jest większa lub równa 1000: SELECT imie, nazwisko, placa FROM pracownicy WHERE nazwisko = 'Kowalski'; Spowoduje wyświetlenie danych (tylko imię, nazwisko i placa) wszystkich pracowników, których nazwisko brzmi dokładnie Kowalski: SELECT * FROM pracownicy WHERE nazwisko LIKE 'K%'; Spowoduje wyświetlenie wszystkich pracowników, których nazwisko rozpoczyna się na literę 'K': Technologie internetowe II

23 Technologie internetowe II
Polecenie SELECT Dzięki zastosowaniu znaków globalnych (% i _) istnieje możliwość przyrównania do dowolnego ciągu znaków. Znak '%' (procent) zastępuje dowolną ilość znaków. Znak '_' (podkreślenie) zastępuje dokładnie jeden znak. Zapytanie: SELECT imie, nazwisko FROM pracownicy WHERE nazwisko LIKE 'Kowalsk_'; spowoduje wyświetlenie wszystkich pracowników, których nazwisko zaczyna się ciągiem znaków 'Kowalsk' i zaraz po nim występuje jeden dowolny znak. Warunki wyboru podawane za WHERE można łączyć ze sobą stosując operatory AND oraz OR. Dzięki temu istnieje możliwość zbudowania zapytania bardziej złożonego, a co za tym idzie bardziej dokładnego. Wydając zapytanie: SELECT * FROM pracownicy WHERE (placa > 500 AND placa < 1000) OR nazwisko = 'Kowalski'; spowoduje wyświetlenie w wyniku wszystkich pracowników, których płaca mieści się w zakresie oraz pracowników o nazwisku 'Kowalski': Technologie internetowe II

24 Technologie internetowe II
Polecenie SELECT Dane w tabeli mogą być przechowywane w dowolnej kolejności. Można jednak spowodować ich pobranie w ściśle określonym porządku. Kolumny, według których MySQL ma posortować dane podaje się po klauzuli ORDER BYoddzielone przecinkami. Chcąc uszeregować listę pracowników rosnąco według nazwiska i malejąco według płacy należy wydać następujące polecenie: SELECT * FROM pracownicy ORDER BY nazwisko ASC, placa DESC; ASC oznacza sortowanie rosnąco według podanego pola, DESC natomiast oznacza sortowanie malejące Technologie internetowe II

25 Technologie internetowe II
Polecenie SELECT Użycie klauzuli LIMIT spowoduje wyświetlenie jedynie części rekordów. Aby pobrać dwa pierwsze rekordy napisz SELECT * FROM pracownicy LIMIT 2; Wypełniając pole ofset wyświetla się podaną ilość rekordów od pewnego miejsca w tabeli. Chcąc pobrać rekordy od 3 do 7 należy napisać: SELECT * FROM pracownicy LIMIT 2, 5; Spowoduje to wyświetlenie pięciu rekordów (o ile tyle istnieje w bazie) poczynając od rekordu trzeciego. MySQL pozwala na połączenie ze sobą wielu opcji, dzięki którym można bardzo dokładnie zawęzić poszukiwaną ilość informacji. Przykład bardziej złożonego zapytania można przedstawić następująco: SELECT imie, nazwisko, placa FROM pracownicy   WHERE placa >= 500 AND placa < 1200   ORDER BY nazwisko   LIMIT 5; Jak widać połączono w tym momencie warunek wyboru według płacy pomiędzy 500 a 1200 z sortowaniem danych według nazwiska i ograniczeniem wyniku tylko do pięciu pierwszych rekordów. Technologie internetowe II

26 Polecenie SELECT – kilka tabel
Tabele: owoc, kolor ID Nazwa_owocu 1 jabłko 2 pomarańcza 3 banan ID Nazwa_koloru 1 czerwony 2 pomarańczowy 3 żółty Technologie internetowe II

27 Polecenie SELECT – kilka tabel
ID SELECT * FROM owoc, kolor ID nazwa_owocu ID nazwa_koloru 1 jabłko 1 czerwony 2 pomarańcza 1 czerwony 3 banan 1 czerwony 1 jabłko 2 pomarańczowy 2 pomarańcza 2 pomarańczowy 3 banan 2 pomarańczowy 1 jabłko 3 żółty 2 pomarańcza 3 żółty 3 banan 3 żółty Technologie internetowe II

28 Polecenie SELECT – kilka tabel
SELECT Nazwa_owocu, Nazwa_koloru FROM owoc, kolor WHERE owoc.id=kolor.id jabłko czerwony pomarańcza pomarańczowy banan żółty Technologie internetowe II

29 Technologie internetowe II
Polecenie JOIN SELECT Nazwa_owocu, Nazwa_koloru FROM owoc -> INNER JOIN kolor ON owoc.id=kolor.id LEFT JOIN – zwraca wiersze w pierwszej tabeli niezależnie od istnienia wierszy w drugiej tabeli RIGHT JOIN – jak LEFT JOIN, ale kolejność odwrotna Są jeszcze CROSS JOIN, STRAIGHT JOIN, NATURAL JOIN i inne Zastępuje WHERE Technologie internetowe II

30 Technologie internetowe II
Podselekcja SELECT wyrażenia i kolumny FROM nazwa_tabeli WHERE wybrana_kolumna (PODSELEKCJA) Podselekcja musi występować w nawiasach Można uzywać z SELECT, INSERT, UPDATE, DELETE, SET, DO Technologie internetowe II

31 Technologie internetowe II
Polecenie UPDATE Polecenie UPDATE służy do modyfikacji danych już wcześniej umieszczonych w tabeli. Jego składnia jest następująca: UPDATE nazwa_tabeli SET nazwa_pola='nowa_wartość'; Po słowie kluczowym SET  kolejno (po przecinku) podaje się nazwy kolumn wraz z nowymi wartościami, jakie powinny przyjąć. Po wydaniu poniższego polecenia: UPDATE pracownicy SET imie='Zofia'; wszystkie rekordy w polu imie będą miały wartość 'Zofia': Technologie internetowe II

32 Technologie internetowe II
Polecenie UPDATE Zazwyczaj chcemy zmienić dane dotyczące tylko jednego lub wybranych rekordów. Do określenia czego ma dotyczyć zmiana służy klauzula WHERE podawana na końcu polecenia UPDATE. W celu zmiany imienia tylko dla Izabeli Kwiatkowskiej polecenie UPDATE będzie wyglądać następująco: UPDATE pracownicy SET imie='Zofia' WHERE nazwisko='Kwiatkowska'; Technologie internetowe II

33 Technologie internetowe II
Polecenie DELETE Do usunięcia danych z tabeli służy polecenie DELETE. Aby usunąć wszystkie dane z tabeli należy wydać polecenie: DELETE FROM nazwa_tabeli; Można użyć także opisywanego już wcześniej warunku wyboru, do wyspecyfikowania danych przeznaczonych do usunięcia. Aby usunąć z przykładowej tabeli pracownicy wszystkie rekordy, w których płaca jest wyższa od 1000 należy wydać następujące polecenie: DELETE FROM pracownicy WHERE placa > 1000; Technologie internetowe II

34 Funkcje operujące na datach
HOUR() HOUR(kolumna) Zwraca samą godzinę ze wskazanej daty MINUTE() MINUTE(kolumna) Zwraca same minuty ze wskazanej daty. SECOND() SECOND(kolumna) Zwraca same sekundy ze wskazanej daty. DAYNAME() DAYNAME(kolumna) Zwraca nazwę dnia tygodnia. DAYOFMONTH() DAYOFMONTH(kolumna) Zwraca sam dzień miesiąca ze wskazanej daty (wyrażone liczbą). MONTHNAME() MONTHNAME(kolumna) Zwraca nazwę miesiąca występującego we wskazanej dacie. MONTH() MONTH(kolumna) Zwraca sam miesiąc ze wskazanej daty (wyrażony liczbą). YEAR() YEAR(kolumna) Zwraca sam rok ze wskazanej daty. Technologie internetowe II

35 Funkcje operujące na datach
ADDDATE() ADDDATE(kolumna INTERVAL x typ) Dodaje do daty przechowywanej w kolumnie x jednostek i zwraca wynik. SUBDATE() SUBDATE(kolumna INTERVAL x typ) Odejmuje od daty przechowywanej w kolumnie x jednostek i zwraca wynik. CURDATE() Zwraca bieżącą datę. CURTIME() Zwraca bieżący czas. NOW() Zwraca bieżącą datę i czas. UNIX_TIMESTAMP() UNIX_TIMESTAMP(data) Zwraca liczbę sekund jaka upłynęła od początku tzw. epoki unixa lub od wskazanej daty. Technologie internetowe II

36 Technologie internetowe II
Obliczenia na datach Funkcja ADDDATE() i SUBDATE(), będące synonimami DATE_ADD() i DATE_SUB(), przeprowadzają obliczenia na datach. Ich składnia jest następująca: ADDDATE(data, INTERVAL x typ) Data może pochodzić z kolumny tabeli lub może być wprowadzona ręcznie. Wartość x jest różna dla każdego typu. Dostępne typy to: SECOND, MINUTE, HOUR, DAY, MONTH i YEAR. Mogą one tez występować w nast. następujących kombinacjach: MINUTE_SECOND, HOUR_MINUTE, DAY_HOUR, oraz YEARS_MONTH. Technologie internetowe II

37 Technologie internetowe II
Obliczenia na datach Aby dodać do wskazanej daty dwie godziny: ADDATE(data, INTERVAL 2 HOUR) Aby dodać dwa tygodnie do 31 grudnia 2002: ADDATE(` `, INTERVAL 14 DAY) Aby odjąć od daty 15 miesięcy, wpisz: SUBDATE(data, INTERVAL `1-3` YEAR_MONTH) Ostatnie zapytanie informuje system, że chcesz odjąć od wartości przechowywanej w kolumnie jeden rok i trzy miesiące.  Technologie internetowe II

38 Interakcje PHP z MySQL

39 Warunki wykorzystania bazy danych
Istnienie działającej bazy danych w miejscu, które jest osiągalne przez serwer WWW. Posiadanie dostępu (użytkownik i hasło) z odpowiednimi uprawnieniami. Istnienie bazy danych (chyba, że ją tworzymy). Używamy funkcji z rodziny mysqli Technologie internetowe II

40 Łączenie z bazą danych

41 Połączenie z bazą danych
Tworzenie nowego połączenia <?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { printf("Informacje o hoście: %s\n", mysqli_get_host_info($mysqli)); } ?> Sprawdzamy błąd Pobieramy komunikat błędu Pobieramy informacje o hoście Technologie internetowe II

42 Połączenie z bazą danych
<?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { printf("Informacje o hoście: %s\n", mysqli_get_host_info($mysqli)); mysqli_close($mysqli); } ?> Połączenie lepiej zamknąć, choć jest zamykane automatycznie Technologie internetowe II

43 Utworzenie bazy danych
<?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { $sql = "CREATE TABLE tabelaProbna (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, poleProbne VARCHAR (75))"; $rez = mysqli_query($mysqli, $sql); if ($rez === TRUE) { echo "Tabela tabelaProbna została utworzona."; printf("Nie można utworzyć tabeli: %s\n", mysqli_error($mysqli)); } mysqli_close($mysqli); ?> Treść zapytania przypisujemy zmiennej Średnik nie jest obowiązkowy Weryfikujemy utworzenie tabeli Technologie internetowe II

44 Operowanie na danych

45 Wstawianie rekordów <?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { $sql = "INSERT INTO tabelaProbna (poleProbne) VALUES ('some value')"; $rez = mysqli_query($mysqli, $sql); if ($rez === TRUE) { echo "Wstawiono rekord."; printf("Nie można wstawić rekordu: %s\n", mysqli_error($mysqli)); } mysqli_close($mysqli); ?> Tutaj wstawiamy kolejny wiersz do tabeli – stała wartość Technologie internetowe II

46 Formularz do wprowadzania danych
<html> <head> <title>Formularz wstawiania rekordów</title> </head> <body> <form action="insert.php" method="POST"> <p>Tekst do dodania:<br> <input type="text" name="poleProbne" size="30"> <p><input type="submit" name="submit" value="wstaw rekord"></p> </form> </body> </html> Technologie internetowe II

47 Uzupełnianie bazy danych
<?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { $sql = "INSERT INTO tabelaProbna (poleProbne) VALUES ('".$_POST["poleProbne"]."')"; $rez = mysqli_query($mysqli, $sql); if ($rez === TRUE) { echo "Wstawiono rekord."; printf("Nie można wstawić rekordu: %s\n", mysqli_error($mysqli)); } mysqli_close($mysqli); ?> Tutaj wstawiamy kolejny wiersz do tabeli – wartość z formularza Technologie internetowe II

48 Wybieranie rekordów <?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { $sql = "SELECT * FROM tabelaProbna"; $rez = mysqli_query($mysqli, $sql); if ($rez) { $liczba_wierszy = mysqli_num_rows($rez); printf("Liczba wierszy w tabeli: %d\n", $liczba_wierszy); printf("Nie można pobrać rekordów: %s\n", mysqli_error($mysqli)); } mysqli_free_result($rez); mysqli_close($mysqli); ?> Pobiera liczbę wierszy w zbiorze wyników zwróconych przez bazę Zwalnia zasoby pamięci zajmowane przez zapytanie Technologie internetowe II

49 Wybieranie rekordów <?php $mysqli = mysqli_connect("localhost", "uzytkownik", "haslo”, "baza"); if (mysqli_connect_errno()) { printf("Nie moża się połączyć: %s\n", mysqli_connect_error()); exit(); } else { $sql = "SELECT * FROM tabelaProbna"; $rez = mysqli_query($mysqli, $sql); if ($rez) { while ($newArray = mysqli_fetch_array($rez, MYSQLI_ASSOC)) { $id = $newArray['id']; $poleProbne = $newArray['poleProbne']; echo "Identyfikator to ".$id." a tekst to ".$poleProbne."<br/>"; } printf("Nie można pobrać rekordów: %s\n", mysqli_error($mysqli)); mysqli_free_result($rez); mysqli_close($mysqli); ?> WHILE przechodzi przez wszystkie rekordy zbioru wyników Technologie internetowe II


Pobierz ppt "Technologie internetowe II"

Podobne prezentacje


Reklamy Google