Úvod do PDO
- Referenční dokumentace
- jednotná abstraktní vrstva pro přístup k datům pro různé DB systémy
- MySQL, PostgreSQL, MsSQL, SQLite, Oracle, …
- Seznam databázových driverů
- proceduralní nebo objektový přístup
Nutné podmínky
aneb co musí být nastaveno, aby to fungovalo
- PDO = sada rozšíření do PHP
- "Obecné" rozšíření obsahující abstraktní vrstvu
- Další rozšíření pro různé podporované databázové systémy
- Důsledek pro produkci: administrátor musí PDO správně nakonfigurovat
- Důsledek pro nás: jsme sami svým administrátorem
- Docker obraz BI-PHP podporuje SQLite, PostgreSQL a MySQL
- U manuální instalace třeba nainstalovat příslušné balíčky
- Instalační manuál pro ruční instalaci
Ověření funkčnosti
$ # zobrazení seznamu nainstalovaných rozšíření
$ php -m | grep -i pdo
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
$Připojení k databázi
- založení PDO objektu
- může být použito k dotazování či jiné práci s databází
- spojení založeno na základě DSN (Data Source Name)
- DSN obsahuje všechny informace, které databázový ovladač potřebuje k navázání spojení
// PostgreSQL
$dsn = 'pgsql:host=127.0.0.1;port=5432;dbname=testdb;';
$user = 'dbuser';
$password = 'dbpass';
$pdo = new \PDO($dsn, $user, $password);// MySQL
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$pdo = new \PDO($dsn, $user, $password);// SQLite
$dsn = 'sqlite:eshop.db';
$pdo = new \PDO($dsn);// SQLite, in-memory
$dsn = 'sqlite::memory:';
$pdo = new \PDO($dsn);