PDO

PDO позволяет работать с различными базами данных, использую один и тотже API. Например, при смене базы данных с MySQL на PostgreSQL, надо будет просто указать данные новой базы данных, не меняя сам код под новую базу данных.

На примере ниже указан пример подключения к базе данных через PDO.

// Настройки подключения к базе данных
$dbc = [];
$dbc['user']     = 'user';
$dbc['password'] = 'pass';
$dbc['host']     = 'localhost';
$dbc['table']    = 'my_database';
$dbc['dsn']      = 'mysql:host='.$dbc['host'].';dbname='.$dbc['table'].';charset=utf8';

// Подключение через PDO
try {
    $db = new PDO($dbc['dsn'], $dbc['user'], $dbc['password']);
} catch (PDOException $e) {
    print 'Ошибка: '.$e->getMessage();
    die();
}
unset($dbc);

Выборка записей

Чтобы выполнить запрос, его сначала надо определить через метод prepare(), в котором надо указать места, которые заполняются через переменные (например «:name»). Это сделано для защиты от SQL-инъекций.

Затем выполнить запрос через метод execute().

// Выполнение SQL-запроса
$stmt = $db->prepare('SELECT id,name FROM users WHERE id=:user_id');
$stmt->execute(['user_id' => $user_id]);

// Вывод данных
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['name'];
}

Данные, переданные через «:name» обрамляются кавычками. Т.е. строка «id=:user_id» сгенерируется в «id="15"».

Поддерживаемые базы данных

Узнать, какие базы данных поддерживает PDO можно через метод PDO::getAvailableDrivers().

PDO::getAvailableDrivers(); // Array ( [0] => mysql [1] => sqlite )