Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save hollowbash/b03ef90ee1b8b8d9cb75e61bc95d6a1e to your computer and use it in GitHub Desktop.

Select an option

Save hollowbash/b03ef90ee1b8b8d9cb75e61bc95d6a1e to your computer and use it in GitHub Desktop.

Revisions

  1. Neris Ereptoris created this gist Apr 16, 2012.
    37 changes: 37 additions & 0 deletions gistfile1.aw
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,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;