1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński
2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Co to jest MySQL? 3 MySQL to system bazodanowy wykorzystywany w sieci i działający na serwerach. System jest szybki, dosyć niezawodny i łatwy w użyciu. Wykorzystuje standard języka SQL. Jest darmowy i kompatybilny z wieloma platformami.
Jak się połączyć z bazą MySQL 4 PHP dostarcza dwa narzędzia do łączenia się z bazami danych MySQL. Jest to rozszerzenie MySQLi oraz PDO (PHP Data Objects). Rozszerzenie MySQLi jest uważane za przestarzałe, już od 2012 roku. Jednakże można nadal je stosować. Przewagą PDO jest współpraca z tuzinem różnych systemów bazodanowych i w przypadku zmiany bazy danych łatwo jest dostosować do niej aplikację. MySQLi współpracuje jedynie z bazami MySQL. W prezentacji zostaną pokazane sposoby wykorzystania PDO oraz MySQLi w podejściu obiektowym (istnieje też podejście proceduralne.
Jak się połączyć z bazą MySQL - MySQLi 5 Wykorzystując MySQLi połączenie nawiązujemy z wykorzystaniem obiektu klasy mysqli. Obiekt tworzymy przy pomocy konstruktora tej klasy, w którym jako parametry przekazujemy nazwę serwera, nazwę użytkownika bazy danych oraz hasło do bazy danych. Pole obiektu connect_error pozwala na sprawdzenie, czy połączenie się powiodło, czy wystąpił jakiś błąd połączenia.
Jak się połączyć z bazą MySQL - MySQLi 6
Jak się połączyć z bazą MySQL - PDO 7 Wykorzystując PDO w pierwszej kolejności musimy skorzystać ze struktury try catch W części try dokonujemy próby nawiązania połączenia wykorzystując do tego obiekt klasy PDO. Obiekt tworzymy przy pomocy konstruktora do którego jako parametry przekazujemy string konfiguracyjny, nazwę użytkownika bazy danych i hasło bazy danych. String konfiguracyjny zawiera informacje o rodzaju bazy danych, nazwie serwera i nazwie bazy danych.
Jak się połączyć z bazą MySQL - PDO 8 Z wykorzystaniem pola setattribute obiektu ustawiamy PDO do pracy w trybie rzucania wyjątków, kiedy nie uda się połączyć z bazą danych. Sekcja catch pozwala na wyłapanie tych wyjątków i podjęcie odpowiednich kroków z tym związanych.
Jak się połączyć z bazą MySQL - PDO 9
Jak się połączyć z bazą MySQL Zamykanie połączenia 10
Podstawowe operacje na bazie danych 11 Wykonywanie podstawowych operacji na bazie danych oparte jest na pewnym szablonie. Po połączeniu się z bazą danych tworzymy stringa, który jest poleceniem napisanym w języku SQL. Następnie string ten jest przekazywany jako parametr metody klasy PDO lub MySQLi. Dla PDO jest to metoda exec(). Dla MySQLi jest to metoda query(). W dalszej części prezentacji znajdziesz przykłady takich operacji dla obydwóch podejść. Znajdziesz też sekcję poświęconą językowi SQL.
Podstawowe operacje na bazie danych Create database - MySQLi 12
Podstawowe operacje na bazie danych Create database - PDO 13
Podstawowe operacje na bazie danych Create table - MySQLi 14
Podstawowe operacje na bazie danych Create table - PDO 15
Podstawowe operacje na bazie danych Select 16 Operacja select pozwala na wyciągnięcie danych z bazy. Potencjalnie mogą to być dane z wielu rzędów tabeli. Zaprezentowane zostanie nie tylko wykonanie kodu, ale także jak operować pozyskanymi danymi. W przypadku korzystania z PDO, metoda exec() nie pozwala na wykonanie operacji select. Można do tego celu wykorzystać metodę query() lub prepere(). W przykładzie została wykorzystana metoda prepere() i zostanie ona dokładniej opisana w dalszej części prezentacji.
Podstawowe operacje na bazie danych Select MySQLi 17
Podstawowe operacje na bazie danych Select PDO 18
Podstawowe operacje na bazie danych Select, operowanie danymi MySQLi 19
Podstawowe operacje na bazie danych Select, operowanie danymi PDO 20
Podstawowe operacje na bazie danych Insert MySQLi 21
Podstawowe operacje na bazie danych Insert PDO 22
Podstawowe operacje na bazie danych Update MySQLi 23
Podstawowe operacje na bazie danych Update PDO 24
Podstawowe operacje na bazie danych Delete MySQLi 25
Podstawowe operacje na bazie danych Delete PDO 26
Kilka dodatkowych operacji uzyskanie ID dodanego do bazy elementu MySQLi 27
Kilka dodatkowych operacji uzyskanie ID dodanego do bazy elementu PDO 28
Kilka dodatkowych operacji dodawanie kilku elementów jednocześnie MySQLi 29
Kilka dodatkowych operacji dodawanie kilku elementów jednocześnie PDO 30
Kilka dodatkowych operacji Prepere 31 Prepere to metoda pozwalająca na stworzenie zapytania SQL, które może zostać wykorzystane wielokrotnie. Każdorazowo z zapytaniu mogą znajdować się inne dane. Metoda ta jest także wykorzystywana do wykonywania zapytań select z wykorzystaniem PDO.
Kilka dodatkowych operacji Prepere MySQLi 32
Kilka dodatkowych operacji Prepere PDO 33
34 SQL Co to, ten SQL Kilka ważniejszych komend SQL Rzut oka na składnię kilku komend Kilka dodatkowych informacji
Co to, ten SQL 35 SQL to strukturalny język zapytań, który pozwala na manipulację bazami danych. SQL pozwala na tworzenie baz danych i tabel. Pozwala pobierać, umieszczać, aktualizować i usuwać dane w bazie danych. Pozwala na usuwanie tabel i baz danych.
Kilka ważniejszych komend SQL 36 SELECT - pobieranie danych z bazy danych UPDATE - aktualizacja danych w bazie danych DELETE - usuwanie danych z bazy danych INSERT INTO - dodawanie danych do bazy danych CREATE DATABASE - tworzenie bazy danych ALTER DATABASE - edycja bazy danych CREATE TABLE - tworzenie tabeli ALTER TABLE - edycja tabeli DROP TABLE - usuwanie tabeli
Rzut oka na składnie kilku komend Select 37
Rzut oka na składnie kilku komend Insert Into 38
Rzut oka na składnie kilku komend Update 39
Rzut oka na składnie kilku komend Delete 40
Kilka dodatkowych informacji 41 Komend w SQL jest oczywiście dużo więcej. W zapytaniach SQL możemy (a czasem musimy) tworzyć pewne warunki, korzystając z komendy WHERE. Warunki w zapytaniach mogą być dosyć rozbudowane, możemy je łączyć przy pomocy AND i OR. SQL oferuje szereg możliwości konfiguracji tworzonych zapytań. Więcej informacji o SQL i jego możliwościach znajdziecie np. tutaj.
42 AJAX i JSON w PHP Przypomnienie o czym mowa Jak obsługiwać asynchroniczne zapytania w PHP Pozyskanie JSON od klienta a z serwera
Przypomnienie o czym mowa 43 AJAX to technologia pozwalająca na asynchroniczną wymianę danych pomiędzy warstwą kliencką a warstwą serwerową. Oznacza to, że dana na stronie mogą być aktualizowane bez jej przeładowania. JSON to składnia pozwalająca na przetrzymywanie i wymienianie danych. JSON jest tekstem wykorzystującym notację obiektową JavaScript. JSON pozwala na łatwą wymianę danych (w tym danych obiektowych) pomiędzy przeglądarką a serwerem. JSON bardzo ładnie komponuje się z AJAX
Jak obsługiwać asynchroniczne zapytania w PHP 44 W naszym wypadku do obsługi takich zapytań kluczowe będą 3 metody. Pierwsza pozwala na pozyskanie wysłanych danych JSON file_get_contents(). Druga pozwalająca na rozkodowanie JSON json_decoded(). Trzecia na wysłanie w odpowiedzi danych w formacie JSON do przeglądarki json_encoded(). json_decoded przekłada otrzymane dane na taki tym, jaki zastaje w JSON. Jeżeli przesyłany jest obiekt, to metoda zwróci obiekt, jeżeli tablica, to zwróci tablicę, jeżeli zwykły string, to zwróci stringa itd.
Jak obsługiwać asynchroniczne zapytania w PHP 45 file_get_contents() jako parametr przyjmuje stringa. Aby pozyskać dane wysłane poprzez AJAX string ten musi mieć postać php://input. json_decoded() jako parametr przyjmuje dane otrzymane w wyniku działania metody file_get_contents(). json_encoded() jako parametr przyjmuje dane, które chcemy zakodować, jako JSON i wysłać do przeglądarki.
Jak obsługiwać asynchroniczne zapytania w PHP 46
Pozyskanie JSON od klienta a z serwera 47 Do pozyskania danych wysłanych od klienta służy metoda file_get_contents. Ta sama metoda może posłużyć do uzyskania danych z innego pliku na tym samym serwerze lub innym serwerze. String, który podajemy jako parametr metody musi w takim wypadku przyjąć formę adresu względnego lub bezwzględnego do pliku, który nas interesuje.
Pozyskanie JSON od klienta a z serwera 48