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; // закрыть соединение