PDO. Часть 1.
Сегодня я начинаю цикл статей, посвящённых PDO, в котором мы разберём, что такое PDO, зачем он нам нужен и как его использовать.
Наверняка, многие уже слышали аббревиатуру PDO, но мало кто знает, что же это. Вот давайте сегодня об этом и поговорим.
Что такое PDO?
PDO(PHP Data Objects) - это просто интерфейс, позволяющий нам абстрагироваться от конкретной базы данных. Лучше всего показать на примере.
mysql_connect($host, $user, $pass); // MySQL
mysql_select_db($db);
sqlite_open($db); // sqlite
pg_connect("host=$host, dbname=$db, user=$user, password=$pass"); // PostgreSQL
В коде выше представлены способы для подключения к трём разным базам данных: MySQL, sqlite и PostgreSQL. Как видите, функции у каждой БД отличаются.
То же самое с другими действиями. Например, выборка данных из БД.
$sql = "INSERT INTO(name, pass) VALUES($name, $pass)";
mysql_query($sql); // MySQL
sqlite_query($sql); // sqlite
pg_query($sql); // PostgreSQL
Зачем нужен PDO?
Представим, что у нас есть огромная база данных PostgreSQL, и мы решили сменить её на MySQL. Нам придётся переписывать очень много кода, и, скорее всего, без ошибок не обойдётся. Чтобы решить эту проблему и существует PDO, позволяющий нам не зависеть от конкретной базы.
Давайте рассмотрим, как мы теперь можем подключиться.
$db = new PDO("mysql:host=$host;dbname=$db", $user, $pass); // MySQL
$db = new PDO("sqlite:host=$host;dbname=$db", $user, $pass); // sqlite
$db = new PDO("pgsql:host=$host;dbname=$db", $user, $pass); // PostgreSQL
Как видно из кода выше, в этих трёх подключениях меняется только строчка с названием БД, а остальное всё то же самое.
Чтобы что-нибудь выбрать, мы можем написать так:
$db->exec($sql);
Всё! Запрос выполнится независимо от того, какая у нас база данных.
Поддержка
PDO доступен с PHP 5.1. Чтобы мы могли "забыть", какую базу данных мы используем, за нас всё делают их драйверы. Чтобы их активировать, зайдите в файл php.ini и найдите там строчки, которые начинаются на extension=php_pdo_, а затем идёт название базы данных, и раскоментируйте их.
На этом всё для вступительной статьи, а в следующей мы уже начнём разбираться, как использовать PDO.
-
- Михаил Русаков
Комментарии (8):
Теперь понятно стало. Спасибо за статью!
Ответить
А как работать с базой данных на простом текстовом файле ? Например с расширением .dat ? Как подключаться к такой базе данных ? Как делать выборку ? И так далее... И ещё :"Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov." Перехожу по ссылке : "Михаил ограничил доступ к своей странице." Это что за такое странное приглашение добавиться ???
Ответить
База данных на простом текстовом файле - это sqlite. Работать с ним через PDO точно так же, как и с MySQL. Об этом написано в статье, так что читайте внимательней. Если Вы хотите работать с обычным текстовым файлом, то Вам нужно использовать соответствующие функции. О них было написано на сайте ранее. На счёт вконтакте написано, что Вы можете добавиться в друзья и оставлять отзывы на стене страницы, а все вопросы пишите в службу тех. поддержки.
Ответить
В контакте я не могу добавиться в друзья. Страница заблокирована. Подскажите пожалуйста, или дайте ссылку на статью, где было описана работа с текстовыми файлами. И могу ли я эти функции использовать как обращение к базе данных на файлах ? Именно как к обычному текстовому файлу, а даже не sqlite. хотя он тоже является простым текстовым файлом.
Ответить
http://myrusakov.ru/file-php.html Судя по вашим вопросам, Вы не совсем понимаете работу php и баз данных. Советую приобрести курс "PHP и MySQL с нуля до гуру", и тогда вопросы отпадут.
Ответить
Всё понял. Этот момент, работу с файлами я знаю. Просто может я не так изъясняюсь. Мне не просто даётся всё это, мозг не так работает, как у молодого поколения. А изучать хочется, интересно. И Вам ОГРОМНОЕ спасибо за то что Вы помогаете ! А что насчёт "В КОНТАКТЕ" ?
Ответить
На счёт этого я не знаю. Попробуйте написать в службу поддержки: http://support.myrusakov.ru/ и там Вам должны помочь.
Ответить
Спасибо.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.