Samouczek PHP

Strona główna PHP Wprowadzenie do PHP Instalacja PHP Składnia PHP Komentarze PHP Zmienne PHP PHP Echo / Drukuj Typy danych PHP Ciągi PHP Liczby PHP Matematyka w PHP Stałe PHP Operatory PHP PHP Jeśli...Inne...Elseif Przełącznik PHP Pętle PHP Funkcje PHP Tablice PHP PHP Superglobals PHP RegEx

Formularze PHP

Obsługa formularzy PHP Walidacja formularzy PHP Wymagany formularz PHP Adres URL/e-mail formularza PHP Formularz PHP kompletny

Zaawansowany PHP

Data i godzina w PHP Uwzględnij PHP Obsługa plików PHP Otwórz/odczytaj plik PHP Tworzenie/zapisywanie plików PHP Przesyłanie plików PHP Pliki cookie PHP Sesje PHP Filtry PHP Zaawansowane filtry PHP Funkcje wywołania zwrotnego PHP PHP JSON Wyjątki PHP

PHP OOP

PHP Co to jest OOP Klasy/obiekty PHP Konstruktor PHP Destruktor PHP Modyfikatory dostępu PHP Dziedziczenie PHP Stałe PHP Klasy abstrakcyjne PHP Interfejsy PHP Cechy PHP Metody statyczne PHP Właściwości statyczne PHP Przestrzenie nazw PHP Iterowalne PHP

Baza danych MySQL

Baza danych MySQL Połączenie MySQL Tworzenie bazy danych MySQL Utwórz tabelę MySQL Wstaw dane MySQL Pobierz ostatni identyfikator MySQL Wstaw wiele MySQL Przygotowano MySQL Wybierz dane MySQL MySQL Gdzie Zamów MySQL według Usuń dane MySQL Dane aktualizacji MySQL Dane limitu MySQL

PHP XML

Parsery PHP XML Parser PHP SimpleXML PHP SimpleXML — Get Rozszerzenie PHP XML PHP XML DOM

PHP - AJAX

Wprowadzenie do AJAX AJAX PHP Baza danych AJAX XML AJAX Wyszukiwanie na żywo AJAX Ankieta AJAX

Przykłady PHP

Przykłady PHP Kompilator PHP Quiz PHP Ćwiczenia PHP Certyfikat PHP

Odniesienie do PHP

Przegląd PHP Tablica PHP Kalendarz PHP Data PHP Katalog PHP Błąd PHP Wyjątek PHP System plików PHP Filtr PHP PHP FTP PHP JSON Słowa kluczowe PHP Biblioteka PHP Poczta PHP Matematyka w PHP Różne PHP PHP MySQLi Sieć PHP Kontrola wyjścia PHP PHP RegEx PHP SimpleXML Strumień PHP ciąg PHP Obsługa zmiennych PHP Parser PHP XML Kod pocztowy PHP Strefy czasowe PHP

PHP Połącz z MySQL


PHP 5 i nowsze wersje mogą współpracować z bazą danych MySQL przy użyciu:

  • Rozszerzenie MySQLi ("i" oznacza ulepszone)
  • PDO (obiekty danych PHP)

Wcześniejsze wersje PHP wykorzystywały rozszerzenie MySQL. Jednak to rozszerzenie zostało wycofane w 2012 roku.


Czy powinienem używać MySQLi czy PDO?

Jeśli potrzebujesz krótkiej odpowiedzi, będzie to „Cokolwiek chcesz”.

Zarówno MySQLi, jak i PDO mają swoje zalety:

PDO będzie działać na 12 różnych systemach bazodanowych, podczas gdy MySQLi będzie działać tylko z bazami danych MySQL.

Jeśli więc musisz przełączyć swój projekt na inną bazę danych, PDO ułatwia ten proces. Musisz tylko zmienić parametry połączenia i kilka zapytań. Z MySQLi będziesz musiał przepisać cały kod - w tym zapytania.

Oba są zorientowane obiektowo, ale MySQLi oferuje również proceduralne API.

Oba obsługują Przygotowane Oświadczenia. Przygotowane instrukcje chronią przed wstrzyknięciem SQL i są bardzo ważne dla bezpieczeństwa aplikacji internetowych.


Przykłady MySQL w składni MySQLi i PDO

W tym oraz w kolejnych rozdziałach przedstawiamy trzy sposoby pracy z PHP i MySQL:

  • MySQLi (zorientowany obiektowo)
  • MySQLi (procedura)
  • ChNP

Instalacja MySQLi

Dla systemów Linux i Windows: Rozszerzenie MySQLi jest w większości przypadków instalowane automatycznie po zainstalowaniu pakietu mysql php5.

Aby uzyskać szczegółowe informacje dotyczące instalacji, przejdź do: http://php.net/manual/en/mysqli.installation.php


Instalacja PDO

Aby uzyskać szczegółowe informacje dotyczące instalacji, przejdź do: http://php.net/manual/en/pdo.installation.php



Otwórz połączenie z MySQL

Zanim uzyskamy dostęp do danych w bazie danych MySQL, musimy mieć możliwość połączenia się z serwerem:

Przykład (zorientowany obiektowo MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Uwaga dotycząca powyższego przykładu zorientowanego obiektowo:

$connect_error był zepsuty do PHP 5.2.9 i 5.3.0. Jeśli chcesz zapewnić zgodność z wersjami PHP starszymi niż 5.2.9 i 5.3.0, zamiast tego użyj następującego kodu:

// Sprawdź połączenie
if (mysqli_connect_error()) {
  die("Połączenie z bazą danych nie powiodło się: " . mysqli_connect_error());
}

Przykład (procedura MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Przykład (PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Uwaga: W powyższym przykładzie PDO określiliśmy również bazę danych (myDB) . PDO wymaga prawidłowej bazy danych do połączenia. Jeśli nie określono bazy danych, zostanie zgłoszony wyjątek.

Wskazówka: Wielką zaletą PDO jest to, że posiada klasę wyjątków, która obsługuje wszelkie problemy, które mogą wystąpić w naszych zapytaniach do bazy danych. Jeśli w bloku try{ } zostanie zgłoszony wyjątek, skrypt przestanie wykonywać i przejdzie bezpośrednio do pierwszego bloku catch(){ }.


Zamknij połączenie

Połączenie zostanie zamknięte automatycznie po zakończeniu skryptu. Aby wcześniej zamknąć połączenie, użyj:

MySQLi zorientowane obiektowo:

$conn->close();

Procedura MySQLi:

mysqli_close($conn);

ChNP:

$conn = null;