![]() |
Основы работы с расширением MySQLi
{INTRODUCTION} Статья предназначена для web-программистов, имеющих опыт работы с PHP и MySQL. Статья освещает основы работы с расширением MySQLi. Для работы нам понадобится сервер с установленным интерпритатором PHP(c расширением MySQLi), и базой данных MySQL. Для этого подойдет WampServer (как с ним работать разберетесь сами). {ABOUT EXTENSION} Для начала обратимся к Википедии: Цитата:
От себя добавлю:
или же объектно-ориентированным, когда в работе применяются классы. В статье я буду рассматривать ООМ(объектно-ориентированный метод). Я вас заинтересовал?! Давайте ознакомимся! {Пример 1. Подключаемся к базе данных} Для начала и последующей работы нам нужно подключится к БД. Для этого нам потребуются:
PHP код:
Если инициализация класса пройдет неудачно, то функция вернет false. Причиной этому может быть неправильные логин/пароль или хост. Поэтому я и использую конструкцию "or die();", чтобы уведомить пользователя, что соединение с БД прошло неудачно. Синтаксис последующих комманд будет выглядеть так: PHP код:
Метод "close();" завершает соединение с БД. {Пример 2. Выполняем запросы с заданными параметрами} Я начну рассматривать возможности сразу с подготовленных запросов, т.к они являются главной "фишкой" в расширении. Плюсы подготовленных запросов:
Эти запросы, используются в тех случаях, когда требуется что-либо создать или обновить в Базе данных. Опишу общую схему работы таких запросов: Создается шаблон запроса, и посылается серверу. Сервер проверяет его корректность, и если все прошло удачно, то запоминает этот шаблон в своем буфере. Потом отправляются параметры к шаблону, для последующего выполнения. И возвращается булевое(TRUE or FALSE). Нужно учесть несколько важных особенностей:
Шаблон запроса будет выглядеть так: PHP код:
Обратите внимание(я сам в этом месте поначалу ошибался): знак вопроса не надо заключать в кавычки, т.к расширение вернет ошибку. Создадим новую запись в БД: PHP код:
Сначала создается переменная $stmt, которая имеет значение подготовленного шаблона. Потом методом "bind_param()" указывается тип каждого параметра(1 буква = один параметр), и назначаются переменные, которые позже будут в БД. Приведу таблицу типов данных: Цитата:
Следующим шагом выполняется запрос методом "execute()", вследствии которого создается в таблице users - новая строка со значениями, которые мы указали.(т.е Login, Password). Если же запрос завершится неудачно то метод вернет FALSE. Обратите внимание, что после этого запроса мы обязаны отчистить буфер БД от шаблона, если мы его больше не будем использовать. Это можно сделать методом "close();" Цитата:
{Пример 3. Выполняем запросы с заданными результатами} Эти запросы нужны, когда требуется получить информацию из БД. Рассмотрим следующий пример: PHP код:
Все комманды делаются по анологии с запросами с заданными параметрами. Кроме следующих моментов: После того как мы выполнили запрос к MySQL, осуществилось сохранение результата методом "bind_result()". Cинтаксис такой: PHP код:
Цитата:
{Подведем итоги} В этой статье я показал(надеюсь научил :)), как создавать запросы расширением MySQLi. Надеюсь статья направила вас на правильный путь работы с БД. При использовании этого расширения, вы должны получать выгоду и почувствовать удобство работы с ним. Надеюсь статья вам понравилась. По возможности буду дополнять. Не пинайте сильно. Спасибо за внимание. {LINKS} ООП в PHP Документация к MySQLi SQL-injection Copyright © Chaak |
и чем в MySQLi запросы отличаются от запросов в MySQL ?
мне не понятно .. |
Цитата:
Запросы отличаются только тем, что используются разные операторы PHP работы с базой данных. Например: простой запрос, подвержен MySQL инъекциям, если его не фильтровать. Т.е: PHP код:
А используя библиотеку, мы можем отправить один раз 100 байт, а потом отправлять параметры по 2- 4 байта. В итоге экономия траффика в десятки раз больше! |
PHP код:
че за херня вообще. |
это типа отзыв о расширении
|
Цитата:
Цитата:
|
имеется множество готовых CMS, вот интересно, почему в них не используется сия технология, а по-прежнему используется всё тот же php_mysql.ext?
за статью риспекты! |
больше походит на книжку-расскраску чем на статью.
|
Красиво оформлено =)
|
перенесите пожалуйста статью из болталки. Жалко ведь когда такое пропадает в суе. Почитаю на досуге.
|
| Время: 15:46 |