PHP
25 Oct 2010
 

Самый простой пример PDO

 
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
// Подключаемся к бд. первый параметр - линк к бд вида "драйвер:host=хост;port=порт;dbname=имя_бд
// Второй и третий параметры - логин и пас соответственно
$db = new PDO(
"mysql:host=localhost;port=3306;dbname=tmp_db",
"root",
"*************"
);
// Тут мы указываем пдо, что если возникла ошибка, то мы ее выводим не как trigger_error() а как исключение (Exception)
// Полезно если используется свой перехватчик ошибок
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Выполняем простой запрос без параметров, вводимых извне (т.е. без фильтрации, не безопасно!)
// Указываем кодировку клиента
$db->query("SET NAMES utf8");
// Подготавливаем безопасный запрос. Все параметры, передаваемые извне, заменяем на любое имя (ключ), например :имя.
$statement = $db->prepare("SELECT count(id) FROM `test` WHERE `email` = :email");
// Выполняем запрос с указанными параметрами
// Параметров должно быть строго столько, сколько в подготовленном запросе
$statement->execute(array(":email" => $email));
// Можем еще раз выполнить тот запрос, но уже с другими параметрами
$statement->execute(array(":email" => $email_2));
// Преобразуем результат ответа БД в ассоциативный массив (для одной, первой попавшейся, строки)
$result = $statement->fetch(PDO::FETCH_ASSOC);
// То же, но для всех строк
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
// Отключаться не обязательно, это происходит при вызове деструктора ПДО
// Хотя можно отключить его вручную, удалив ссылку на созданный объект, например так:
$db = null;