pdo

Использование PDO при работе с базами данных

Выполнение запроса к БД

//MySQL
mysql_connect('localhost', 'vasya', 'parol');
mysql_select_db('users');
$result = mysql_query($sql);
//SQLite
$dbh = sqlite_open('/path/to/users.db');
$result = sqlite_query($sql, $dbh);
//PostgreSQL
pg_connect("host=localhost dbname=users user=vasya password=parol");
$result = pg_query($sql);
//PDO
$conn = new PDO($conn, $user, $password);
$result = $conn->exec($sql);

exec ($sql) возвращает количество строк, над которыми было произведено действие.

Выборка данных из БД

//стандартный запрос
$sql = 'SELECT name FROM users ORDER BY name';
//MySQL
mysql_connect('localhost', 'vasya', 'parol');
mysql_select_db('users');
$result = mysql_query($sql);
//SQLite
$dbh = sqlite_open('/path/to/users.db');
$result = sqlite_query($sql, $dbh);
//PostgreSQL
pg_connect("host=localhost dbname=users user=vasya password=parol");
$result = pg_query($sql);
//PDO
$conn = new PDO($conn, $user, $password);
$result = $conn->query($sql);

Как видим, при использовании PDO всего одна строка запроса.

Фильтрация строк

Перед записью информации в базу данных, эту инфу надо отфильтровать. Смотрим, как это сделать в разных БД и с использованием PDO:

SELECT * FROM users WHERE name='$name'
$name = $_POST['name'];
//MySQL
$name = mysql_real_escape_string($name);
//SQLite
$name = sqlite_escape_string($name);
//PostgreSQL
$name = pg_escape_string($name);
//PDO
$name = $conn->quote($name);
$result = $conn->query("SELECT * FROM users WHERE name='$name'");

В PDO всего одна строка — quote. По сути, quote, в зависимости от базы данных, захватит в себя (и выполнит) весь код (например, строку №4 или №6 или №8, смотря какая база используется).




Добавить комментарий

Ваш e-mail не будет опубликован.