Připojení k databázi přes PDO v PHP
Pojďme provést připojení k databázi přes PDO. Nejprve si uložíme přístupové údaje do proměnných:
<?php
$host = 'localhost'; // název hostitele (zpravidla vždy takový)
$db = 'test'; // název databáze
$user = 'root'; // uživatelské jméno pro přihlášení do databáze
$pass = 'root'; // heslo pro přihlášení do databáze
?>
Nyní potřebujeme vytvořit řetězec
ve speciálním formátu. V tomto řetězci
musíme uvést typ používané databáze
(zpravidla 'mysql'),
název hostitele a název databáze:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
Dále vytvoříme pole voleb PDO, které budeme používat během práce (prozatím do nich nepronikejte):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Nyní můžeme provést připojení k databázi pomocí výše deklarovaných proměnných:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Výše uvedený kód buď provede připojení
k databázi, nebo vyvolá výjimku.
Proto je správnější obalit připojení
do konstrukce try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Úplný kód bude vypadat takto:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // uživatelské jméno pro přihlášení do databáze
$pass = ''; // heslo pro přihlášení do databáze
$charset = 'utf8';
$dsn = "mysql:host=$host; dbname=$db; charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Navažte spojení s vaší databází způsobem popsaným v lekci.