Добро пожаловать, Гость!
Дневник - Знакомство с PDO новичкам))
Jvk35
Самая распространенная на данный момент СУБД это MySQL и соответственно все юзают именно ее.
В PHP 5 существует расширение PDO (PHP Data Objects). Что же это за такое расширение? PDO предоставляет общий интерфейс к различным базам данных (SQLite, MySQL, PosgreSQL, etc), т.е. служит неким адаптером. К преимуществом PDO можно отнести, то, что оно написано на C, (впрочем, почти как и все расширения) с учетом всех нововведений PHP 5.1. Вообщем PDO – рулез
. Ну и чтобы нам реальным пацанам не было стремно перед другими такими же пацанами, мы должны юзать или хотя бы знать как юзать PDO. Что же будем учиться
.Для начала нам надо убедится, что у нас имеется библиотека PDO. Для этого смотрим вывод функции phpinfo(). У меня на Денвере (да, я юзаю Денвер) установлен драйвер php_pdo_mysql.dll. В принципе мне этого достаточно. Вам должно быть тоже, если только вы не захотите использовать, к примеру SQLite или PostgreSQL. В таком случае придется самостоятельно скачать дополнительные драйвера. Итак, будем считать, что все готово и приступим к самому интересному – кодингу.
Подключение к MySQL:
<?php
$connect = new PDO('mysql:host=хост;dbname=название БД', 'логин', 'пароль');
Закрытие соединения:
$connect = null;
?>
Во многих приложениях может оказаться полезным использование постоянных соединений к базам данных. Постоянные соединения не закрываются при завершении работы скрипта, они кэшируются и используются повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянные соединения позволяют избежать создания новых подключений каждый раз, когда требуется обмен данными с базой, что в результате дает прирост скорости работы таких приложений.
<?php
$connect = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));
?>
Запросы. Запросы в PDO могут быть двух видов: обычные и с плейсхолдерами. Запросы с плейсхолдерами рекомендуются для скорости и безопасности.
Рассмотрим обычные запросы. Они могут выполняться двумя способами: через метод query() и метод exec(). Обычно рекомендуется для получения данных из БД использовать метод query(), а для модификации данных – метод exec().
Например:
<?php
$res = $connect->query("SELECT * FROM posts");
?>
Как не трудно догадаться этот запрос получает все данные из таблицы posts. Поэтому использовался метод query().
<?php
$res = $connect->exec("INSERT INTO posts VALUES (0, '$title', '$blog_post')");
$res = $connect->exec("UPDATE posts SET title = '$title', blog_post = '$blog_post'");
?>
А эти запросы модифицируют информацию (вставка и обновление), поэтому здесь использовался метод exec().
Ну а теперь самое вкусное – подготовленные выражения, они же плейсхолдеры. И сразу пример:
<?php
$id = $_GET['id'];
$res = $connect->prepare("UPDATE posts set title = '$title', blog_post = '$blog_post' WHERE id = ?");
$res = $connect->execute(array($id));
?>
Здесь в массив подставляется значение переменной $id, в которой хранится значение из GET-переменной. Оно подставляется на место знака вопроса в первом запросе. Вот таким ввот образом происходит защита от SQL-иньекций.
Для экранирования символов, используется функция quote().
Теперь быстренько пройдемся по выборке данных:
<?PHP
$res = $connect->query("SELECT * FROM posts");
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
// Переменной $row присвоится ассоциативный массив
}
while ($obj = $res->fetch(PDO::FETCH_OBJ)) {
// переменной $obj присвоится объект
} ?>
На этом все. Это была лишь малая толика обзора возможностей PDO.
Я хотел лишь подтолкнуть вас на изучение такого замечательного расширения, как PDO. Дальше Гугл, Яндекс, Википедия и т.п. вам в помощь.
Категория:
Комментарии: (6)
DCMS-Social.ru - движок социальной сети, вап и веб мастерская, файло-обменник и форум.
Статистика DCMS-Social.ru: Пользователей - 15120, тем на форуме - 30309, сообщений - 298973

