PHP-PDO - połączenie z bazą

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 7664 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.

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

Konstruktor klasy PDO przyjmuje następujące parametry:

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

$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:

$pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $database . ';port=' . $port . ";charset=utf8", $username, $password, array( PDO::ATTR_PERSISTENT => true ));
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
Propozycje książek