Homepage:PDO
PDO (PHP Data Objects) - это уровень для доступа к базам данных, который обеспечивает унифицированные методы для доступа к различным базам данных. PDO появился в PHP начиная с версии 5.1.
Преимущества PDO:
<?php // Получить список драйверов, доступных в системе print_r(PDO::getAvailableDrivers()); ?>
$bd = NULL;
$dbconn->query($sql)->fetch(PDO::FETCH_ASSOC);
// Фильтрация строк. Экранирование символов при вставке в БД
$dbconn = new PDO("создали подключение");
$name = "O'Brain"; // Перед вставкой в БД нужно экранировать одинарную кавычку
$name = $dsn->quote($name);// экранируем
$sql = "INSERT INTO tbl(name) VALUES ($name)";
$res = $dbconn1->exec($sql);
echo $res; // выведется кол-во обработанных строк
try {
$bd = new PDO('mysql:host=хост;dbname=база', 'логин(или переменная)', 'пароль(или переменная)');
}catch (PDOException $e){
print "Error!: " . $e->getMessage() . "<br />";
}
try - попытка подключения к базе (критической ошибки не будет), если подключение не прошло - будет выведена ошибка которую отдает непосредственно база данных MySQL.
function PDOMySQLocal() {// connect to DB MySQL
static $dbconn;
if (is_null($dbconn)) {
try {
$host = '127.0.0.1';
$port = 3306;
$dbname = 'yourdb';
$dsn = "mysql:host=$host;port=$port;dbname=$dbname";
$username = 'root';
$passwd = '';
$dbconn = new PDO($dsn, $username, $passwd);
// $dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br />";
}
}
return $dbconn;
}
$cdb = PDOMySQLocal();
$sql = 'SELECT * FROM Countries LIMIT 5;';
try {
$res = $cdb->query($sql);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br />";
}
$res->setFetchMode(PDO::FETCH_ASSOC); // устанавливаем режим выборки
print_r($res->fetchAll());
<?php
try {
$host = 'localhost';
$port = 5432;
$dbname = 'postgres';
$dsn = "pgsql:host=$host;port=$port;dbname=$dbname";
$username = 'postgres';
$passwd = '';
$dbconn = new PDO($dsn, $username, $passwd);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br />";
}
// Выполним тестовый SQL запрос
try {
$sql = 'Select * FROM pg_database';
echo '<pre>';
foreach ($dbconn->query($sql) as $row) {
print_r($row);
}
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br />";
}
?>
function PDOPgSQL() {// connect to DB PostgreSQL
static $dbconn;
if (is_null($dbconn)) {
try {
$host = 'localhost';
$port = 5432;
$dbname = 'postgres';
$dsn = "pgsql:host=$host;port=$port;dbname=$dbname";
$username = 'postgres';
$passwd = '';
$dbconn = new PDO($dsn, $username, $passwd);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br />";
}
}
return $dbconn;
}
$cdb = PDOPgSQL();
$sql = 'SELECT * FROM phrases';
$cdb->query($sql);
try {
$dbconn = new PDO("sqlite:test.db");
} catch (PDOException $e) {
print "Error!: " . $e->getMessage();
}
$dbconn= NULL; // закрыть соединение