Свързване с БД чрез PDO в PHP
Нека установим връзка с БД чрез PDO. Първо, нека запишем данните за достъп в променливи:
<?php
$host = 'localhost'; // име на хост (обикновено винаги такова)
$db = 'test'; // име на БД
$user = 'root'; // потребителско име за вход в БД
$pass = 'root'; // парола за вход в БД
?>
Сега трябва да формираме низ
в специален формат. В този низ
трябва да посочим типа на използваната
БД (обикновено 'mysql'),
името на хоста и името на БД:
<?php
$dsn = "mysql:host=$host; dbname=$db; charset=utf8";
?>
След това създаваме масив с опции за PDO, които ще използваме в процеса на работа (засега не се задълбавайте в тях):
<?php
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
?>
Сега можем да осъществим връзка с базата данни, използвайки декларираните по-горе променливи:
<?php
$pdo = new PDO($dsn, $user, $pass, $opt);
?>
Горният код или ще осъществи връзка
с базата данни, или ще хвърли изключение.
Затова е по-правилно да обгърнем свързването
в конструкция try-catch:
<?php
try {
$pdo = new PDO($dsn, $user, $pass, $opt);
echo 'DB is connected';
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Пълният код ще изглежда така:
<?php
$host = 'localhost';
$db = 'test';
$user = ''; // потребителско име за вход в БД
$pass = ''; // парола за вход в БД
$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();
}
?>
Установете връзка с вашата БД по описания в урока начин.