Skip to content

Instantly share code, notes, and snippets.

@VitaliiTsilnyk
Created April 16, 2012 13:26
Show Gist options
  • Save VitaliiTsilnyk/2398764 to your computer and use it in GitHub Desktop.
Save VitaliiTsilnyk/2398764 to your computer and use it in GitHub Desktop.
Самый простой пример PDO
<?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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment