Baza danych jest bardzo ważną częścią każdej aplikacji internetowej do przechowywania i pobierania danych z aplikacji. Do bazy danych można uzyskać na wiele sposobów w PHP. PDO i MySQLI to rozszerzenia PHP, aby uzyskać dostęp do baz danych za pomocą PHP. PDO (obiekty danych PHP) zostało wprowadzone najpierw w PHP w wersji 5.1 Aby nawiązać połączenie z bazą danych, aby wykonać różne typy zadań bazy danych. Zapewnia lekki interfejs do dostępu do bazy danych za pośrednictwem skryptu PHP. Abstrakcja danych bazy danych nie jest dostarczana przez PDO, ale dane można uzyskać z wielu baz danych łatwiej za pomocą PDO. Większość popularnych baz danych jest obsługiwana przez PDO, takie jak MySQL, SQLite, Oracle, MS SQL Server, PostgreSQL itp. Korzyści z korzystania z PDO, różnica między PDO i MySQLI oraz sposobem połączenia i dostępu do bazy danych MySQL za pomocą PDO są opisane w tym samouczku.
Korzyści z PDO
Niektóre zalety korzystania z PDO w celu uzyskania dostępu do baz danych są wymienione w następujący sposób:
- W PDO istnieje wiele funkcji pomocniczych w celu automatyzacji różnych rodzajów zadań programistycznych.
- Zapewnia bezpieczeństwo od hakerów korzystających z przygotowanych instrukcji, jednocześnie uzyskując dostęp do danych z bazy danych.
- Zawiera lepsze funkcje obsługi błędów w celu bardziej wydajnego obsługi różnych rodzajów błędów.
- Dostęp do wielu baz danych można uzyskać za pomocą Unified API PDO.
Różnice między PDO i mysqli
PDO | Mysqli |
Działa w sposób zorientowany na obiekt. | Może działać zarówno w sposób obiektowy, jak i proceduralny. |
Obsługuje wiele sterowników bazy danych. | Obsługuje tylko mysql. |
Obsługuje przygotowaną instrukcję po stronie klienta. | Nie obsługuje przygotowanej instrukcji po stronie klienta. |
Jest bezpieczniejszy niż MySqli. | Jest mniej bezpieczny niż PDO. |
Obsługuje wymienione parametry. | Nie obsługuje wymienionych parametrów. |
Utwórz bazę danych MySQL
Uruchom następujące polecenie SQL, aby utworzyć bazę danych o nazwie „test„Aby sprawdzić zastosowania PDO do wykonywania różnych rodzajów zadań bazy danych:
Utwórz test bazy danych;
Utwórz tabelę
Uruchom następujące polecenie SQL, aby utworzyć tabelę o nazwie „książki" w środku "test" Baza danych:
Utwórz książki stołowe (
ID int (255) nie zerowy klucz podstawowy auto_increment,
tytuł varchar (150) nie null,
Autor Varchar (150) nie null
) Silnik = innodb;
Wykonaj połączenie z bazą danych za pomocą PDO
Utwórz plik PHP z następującym skryptem, który tworzy połączenie z „test„Baza danych za pomocą PDO:
// Zainicjuj zmienne połączenia
$ hostName = "localHost";
$ batabase = "test";
$ user = "root";
$ hasło = "12345";
próbować
// Utwórz połączenie z bazą danych za pomocą PDO
$ db_connection = new pdo ("mysql: host = $ hostName; dbname = $ baza danych", $ user, $ hasło);
Catch (wyjątek $ e) $ instrukcja-> wykonuj ([[
// Wydrukuj komunikat o błędzie
Echo „Nie można połączyć się z bazą danych." . $ e-> getMessage ();
?>
Włóż wiersz do stołu
Utwórz plik PHP z następującym skryptem, który wstawia rekord do książki Tabela za pomocą połączenia PDO. Plik połączenia bazy danych jest zawarty na początku skryptu za pomocą funkcji one one_once (). Przygotowane oświadczenie do zapytań Insert jest tworzone w celu wstawienia nowego rekordu do tabeli.
// Utwórz połączenie bazy danych
Ablow_once 'pdo_connect.php ';
// Ustaw wartości do wstawienia jednego rekordu do tabeli książek
$ title = „Radość programowania PHP: przewodnik dla początkujących”;
$ autor = „Alan Forbes”;
// Ustaw zapytanie do wstawu
$ query = 'wstaw do książek (id, tytuł, autor) wartości (: id,: tytuł,: autor)';
// Utwórz przygotowaną instrukcję
$ instrukcja = $ db_connection-> Przygotuj ($ query);
// Wykonaj zapytanie do wstawu
$ instrukcja-> Wykonaj ([[
': id' => null,
': tytuł' => $ tytuł,
': autor' => $ autor
]);
Echo „jeden rekord jest z powodzeniem wstawiany”;
?>
Wyjście:
Poniższe dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu, jeśli pomyślnie wstawiono nowy rekord:
Wybierz dane z tabeli
Utwórz plik PHP z następującym skryptem, który wybiera wszystkie rekordy książki Tabela za pomocą połączenia PDO. Plik połączenia bazy danych jest zawarty na początku skryptu za pomocą funkcji one one_once (). Przygotowana instrukcja do wybranego zapytania jest tworzona, aby odczytać wszystkie rekordy z tabeli.
// Utwórz połączenie bazy danych
Ablow_once 'pdo_connect.php ';
// Ustaw zapytanie, aby przeczytać wszystkie rekordy
$ query = 'wybierz * z książek';
// Utwórz przygotowaną instrukcję
$ instrukcja = $ db_connection-> query ($ query);
// Przeczytaj wszystkie rekordy z tabeli książek
$ books = $ instrukcja-> fetchall (pdo :: fetch_assoc);
if ($ books)
// iteruj i wydrukuj każdy rekord z tabeli
foreach ($ books as $ book)
Echo "
Nazwa książki: ".$ książka [„tytuł”] . "
";
Echo "
Imię autora: ".$ książka [„autor”] . "
";
Wyjście:
Następujące dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu, jeśli tabela zawiera jeden rekord:
Zaktualizuj dane z tabeli
Utwórz plik PHP z następującym skryptem, który aktualizuje rekord książki Tabela za pomocą połączenia PDO. Plik połączenia bazy danych jest zawarty na początku skryptu za pomocą funkcji one one_once (). Przygotowana instrukcja do zapytania jest tworzona w celu aktualizacji zapisu tabeli książek zawierających wartość identyfikatora 1.
// Utwórz połączenie bazy danych
Ablow_once 'pdo_connect.php ';
// Ustaw nowe wartości do aktualizacji
$ book = [
„id” => 1,
„Tytuł” => 'PHP i MySQL nowicjusz do Ninja' ',
„Autor” => „Kevin Yank”
];
// Ustaw zapytanie o aktualizację
$ query = "aktualizuj książki
Set title =: tytuł, autor =: autor
Gdzie id =: id ”;
// Utwórz przygotowaną instrukcję
$ instrukcja = $ db_connection-> Przygotuj ($ query);
// powiązaj paramenty dla przygotowanej instrukcji
$ instrukcja-> bindParam (': id', $ book ['id'], pdo :: param_int);
$ oświadczenie-> bindParam (': title', $ book ['title']);
$ oświadczenie-> bindParam („: autor”, $ book [„autor”]);
// Wykonaj zapytanie aktualizacji
if ($ instrukcja-> execute ())
echo „Informacje o książce zostały zaktualizowane.';;
Wyjście:
Poniższe dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu, jeśli rekord tabeli zostanie pomyślnie zaktualizowany:
Usuń wiersz ze stołu
Utwórz plik PHP z następującym skryptem, który usuwa rekord książki Tabela za pomocą połączenia PDO. Plik połączenia bazy danych jest zawarty na początku skryptu za pomocą funkcji one one_once (). Przygotowane oświadczenie do zapytania jest tworzone w celu usunięcia zapisu tabeli książek zawierających wartość identyfikatora 1.
// Utwórz połączenie bazy danych
Ablow_once 'pdo_connect.php ';
// Ustaw zapytanie do usunięcia
$ query = 'Usuń z książek gdzie id =: id';
$ id = 1;
// Ustaw instrukcję przygotowania
$ instrukcja = $ db_connection-> Przygotuj ($ query);
$ instrukcja-> bindParam (': id', $ id, pdo :: param_int);
// Wykonaj zapytanie Usuń
if ($ instrukcja-> execute ())
Echo „Jeden rekord został usunięty.';;
Wyjście:
Poniższe dane wyjściowe pojawia się po wykonaniu poprzedniego skryptu, jeśli zapis tabeli zostanie pomyślnie usunięty:
Wniosek
Różne funkcje PDO i sposób korzystania z PDO do tworzenia połączeń bazy danych i wdrażania operacji CRUD są pokazane w tym samouczku poprzez utworzenie bazy danych MySQL z tabelą.