PHP-PDO - połączenie z bazą

Stronę tą wyświetlono już: 137 razy

Połączenie z bazą danych i przechwytywanie wyjątków

Połączenie się z bazą danych za pomocą PDO jest bardzo prost i polega na zwykłym utworzeniu obiektu tej klasy w sposób pokazany na Listingu 1.

Listing 1
  1. <?php
  2. $mysql_host = 'localhost'; //tutaj jest localhost ale może być adres do bazy danych
  3. $port = '3306'; // domyślny numer portu
  4. $username = 'login';
  5. $password = 'hasło';
  6. $database = 'nazwa_bazy';
  7. try{
  8. $pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $database . ';port=' . $port . ";charset=utf8", $username, $password );
  9. echo('<p>Houston mamy połączenie!</p>');
  10. }catch(PDOException $e){
  11. echo('<p>Houston mamy problem! Nie możemy się połączyć!</p>');
  12. die(); // Nie połączyłeś się? To nie ma co robić nic więcej!
  13. }
  14. ?>

Konstruktor klasy PDO przyjmuje następujące parametry:

  • pierwszy argument opisuje rodzaj bazy danych (np. mysql) następnie nazwa hosta (np. host=localhost); nazwa bazy danych (np. po średniku dbname=nazwa_bazy) i numer portu (np. domyślny port=3306). Do tego można (opcjonalnie) dodać inne elementy związane z ustawieniami połączenia, np. ustawienie kodowania znaków charset=utf8;
  • nazwa użytkownika;
  • toje hasło

Gdyby wykonać połączenie w taki sposób:

Listing 2
  1. $pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $database . ';port=' . $port . ";charset=utf8", $username, $password ) or die();

to Twoje dane logowania zostałyby wyświetlone i dostępne publicznie dla każdej osoby, która akurat przegląda Twoją stronę co prowadzi do ujawnienia twoich danych takich jak hasło czy nazwa użytkownika. Dlatego w listingu 1 wykorzystane zostało przechwytywanie wyjątków.

Stałe połączenie z bazą danych

Czasami dużo lepiej jest nie niszczyć połączenia z bazą danych za każdym razem, gdy skrypt na Twojej stronie się wykona. W tym celu należy ustanowić połączenie stałe, które zostanie wykorzystana przy kolejnym wywołaniu jakiegoś skryptu. Połączenie tego typu można ustanowić w następujący sposób:

Listing 3
  1. $pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $database . ';port=' . $port . ";charset=utf8", $username, $password, array(
  2. PDO::ATTR_PERSISTENT => true
  3. ));
Strony powiązane
strony powiązane
  1. secure.php.net/manual/en/book.pdo.php - łączenie się z bazą danych za pomocą PDO opisane w podręczniuku

Komentarze