php mysql select пример
Работа с MySQL в PHP
PHP поддерживает работу с базой данных MySQL.
Специальные встроенные функции для работы с MySQL позволяют просто и эффективно работать с этой СУБД: выполнять любые запросы, читать и записывать данные, обрабатывать ошибки.
Сценарий, который подключается к БД, выполняет запрос и показывает результат, будет состоять всего из нескольких строк. Для работы с MySQL не надо ничего дополнительно устанавливать и настраивать; всё необходимое уже доступно вместе со стандартной поставкой PHP.
Что такое mysqli?
mysqli (MySQL Improved) — это расширение PHP, которое добавляет в язык полную поддержку баз данных MySQL. Это расширение поддерживает множество возможностей современных версий MySQL.
Как выглядит работа с базой данных
Типичный процесс работы с СУБД в PHP-сценарии состоит из нескольких шагов:
Функция mysqli connect: соединение с MySQL
Но чтобы выполнить соединение с сервером, необходимо знать как минимум три параметра:
Базовый синтаксис функции mysqli_connect() :
Проверка соединения
Первое, что нужно сделать после соединения с СУБД — это выполнить проверку, что оно было успешным.
Эта проверка нужна, чтобы исключить ошибку при подключении к БД. Неверные параметры подключения, неправильная настройка или высокая нагрузка заставит MySQL отвеграть новые подключения. Все эти ситуации приведут к невозможности соединения, поэтому программист должен проверить успешность подключения к серверу, прежде чем выполнять следующие действия.
Соединение с MySQL и проверка на ошибки:
Функция mysqli_connect_error() просто возвращает текстовое описание последней ошибки MySQL.
Установка кодировки
Первым делом после установки соединения крайне желательно явно задать кодировку, которая будет использоваться при обмене данными с MySQL. Если этого не сделать, то вместо записей со значениями, написанными кириллицей, можно получить последовательность из знаков вопроса: ‘. ’.
Вызови эту функцию сразу после успешной установки соединения: mysqli_set_charset($con, «utf8»);
Выполнение запросов
Установив соединение и определив кодировку мы готовы выполнить свои первые SQL-запросы. Вы уже умеете составлять корректные SQL команды и выполнять их через консольный или визуальный интерфейс MySQL-клиента.
Те же самые запросы можно отправлять без изменений и из PHP-сценария. Помогут в этом несколько встроенных функций языка.
Два вида запросов
Следует разделять все SQL-запросы на две группы:
При выполнении запросов из среды PHP, запросы из второй группы возвращают только результат их исполнения: успех или ошибку.
Запросы первой группы при успешном выполнении возвращают специальный ресурс результата. Его, в свою очередь, можно преобразовать в ассоциативный массив (если нужна одна запись) или в двумерный массив (если требуется список записей).
Добавление записи
Вернёмся к нашему проекту — дневнику наблюдений за погодой. Начнём практическую работу с заполнения таблиц данными. Для начала добавим хотя бы один город в таблицу cities.
Выражение INSERT INTO используется для добавления новых записей в таблицу базы данных.
Функция insert id: как получить идентификатор добавленной записи
Теперь у нас есть всё необходимое, чтобы добавить погодную запись.
Вот как будет выглядеть комплексный пример с подключением к MySQL и добавлением двух новых записей:
Чтение записей
В этом примере показано, как вывести все существующие города из таблицы cities:
Чтобы получить действительные данные, то есть записи из таблицы, следует использовать другую функцию — mysqli_fetch_array() — и передать ей единственным параметром эту самую ссылку.
Теперь каждый вызов функции mysqli_fetch_array() будет возвращать следующую запись из всего результирующего набора записей в виде ассоциативного массива.
Цикл while здесь используется для «прохода» по всем записям из полученного набора записей.
Значение поля каждой записи можно узнать просто обратившись по ключу этого ассоциативного массива.
Как получить сразу все записи в виде двумерного массива
Иногда бывает удобно после запроса на чтение не вызывать в цикле mysqli_fetch_array для извлечения очередной записи по порядку, а получить их сразу все одним вызовом. PHP так тоже умеет. Функция mysqli_fetch_all($res, MYSQLI_ASSOC) вернёт двумерный массив со всеми записями из результата последнего запроса.
Перепишем пример с показом существующих городов с её использованием:
Как узнать количество записей
Основы PHP и MySQL — Операторы выборки (SELECT), вставки (INSERT), обновления (UPDATE) и удаления (DELETE) информации из базы данных
В этой статье мы на примерах разберем такие очень важные моменты в работе с базами данных MySQL (БД), как выборка из базы данных, запись в базу данных, обновление информации в базе данных, а также ее удаление из базы данных. Все это будет производиться при помощи четырех операторов PHP – операторов SELECT, INSERT, UPDATE и DELETE о которых и пойдет речь в данной статье.
В предыдущей статье про основы работы с базами данных мы рассмотрели, как создавать базы данных через phpMyAdmin и заносить в них информацию, а также как подключаться к БД через PHP. Теперь давайте перейдем к следующему этапу в изучении PHP и MySQL и рассмотрим, как вытащить информацию из базы данных при помощи PHP или другими словами сделать выборку из БД.
Как сделать выборку из базы данных. Оператор выборки SELECT
Перед тем как производить выборку из базы данных, первым делом нужно подключиться к MySQL серверу и выбрать базу данных для работы. Как вы уже знаете из предыдущей статьи рубрики «Уроки PHP и MySQL», делается это следующим образом.
После соединения с MySQL сервером и выбора базы данных можно приступить непосредственно к выборке из БД. Для примера возьмем базу данных, которую мы создавали в предыдущей статье. Напомню, что была создана база данных с именем db_name и одной таблицей first_table, в которой было всего три поля: id (идентификатор), name (имя), last_name (фамилия). Для того чтобы произвести выборку из базы данных можно использовать функцию mysql_query(), которая в данном случае имеет следующий синтаксис.
Если говорить простыми словами, то данный код расшифровывается как «ВЫБРАТЬ поля (перечисляем названия через запятую) ИЗ таблицы (указываем имя таблицы БД) ГДЕ выполняется условие (прописываем условие)». Как видите синтаксис функции очень простой, а сам код похож на обычный человеческий язык.
Поскольку функция mysql_query() возвращают результат, то его нужно поместить в какую-то переменную для дальнейшего использования, например, в переменную $result.
Теперь результат выполнения функции mysql_query() хранится в переменной $result и может быть использован, например, для формирования массива и вывода результатов на экран. Более подробно об этом мы поговорим чуть позже, ну а пока перейдем к примерам. В качестве базы данных для примера будем использовать базу db_name из предыдущей статьи.
Итак, если нужно вытащить все поля из базы данных используем следующий код.
Звездочка означает, что нужно вытащить все поля из таблицы.
Если нужно вытащить только некоторые поля, например, имя и фамилию.
name, last_name – поля с именами и фамилиями пользователей.
Если же нам нужно получить записи, где выполняется одно условие из нескольких, например, получить идентификаторы всех пользователей у которых имя или фамилия отвечают заданным в условиях.
Если вам нужно отсортировать результат по каким-то параметрам, например, по имени.
ORDER BY name – отсортировать по имени.
Если нужно отсортировать в обратном порядке.
DESC – в обратном порядке.
Если нужно вытащить только определенное количество полей из базы данных. К примеру, нужно вытащить первые пять полей.
LIMIT 5 – вытащить из БД только первые пять результатов.
Это были небольшие примеры выборки из базы данных. Теперь давайте рассмотрим, как преобразовать полученный результат в массив для дальнейшего использования, например, для вывода результата на экран. Для этого в PHP существует специальная функция PHP mysql_fetch_array().
Как видите все очень просто и понятно.
Ну а теперь перейдем к следующему оператору INSERT, который отвечает за добавление информации в базу данных.
Добавление информации в базу данных. Оператор INSERT
Оператор INSERT применяется для добавления информации в базу данных. Код, отвечающий за добавление, имеет следующий синтаксис.
Данный код можно было бы прочитать как «ВСТАВИТЬ В таблицу (имя таблицы) в поля (названия полей через запятую) ЗНАЧЕНИЯ (перечисляем значения через запятую)».
Например, нам нужно добавить в таблицу first_table имя и фамилию нового пользователя. Для этого можно использовать следующий код.
Для того чтобы проверить результат можно использовать конструкцию if – else.
Обновление информации в базе данных. Оператор UPDATE
Оператор UPDATE применяется для обновления уже существующей информации в базе данных. Синтаксис функции mysql_query в данном случае следующий.
Теперь давайте перейдем к заключительной части статьи и рассмотрим последний оператор DELETE, который отвечает за удаление информации из базы данных.
Удаление информации из базы данных. Оператор DELETE
Оператор DELETE применяется для удаления полей из базы данных. Синтаксис функции mysql_query() в данном случае следующий.
На этом данная статья подошла к концу. Материал не сложный, но объяснять его посредством текста достаточно сложно. Все же я думаю, вы поняли всю суть вышеизложенного материала. Если у вас остались какие-то вопросы по данной статье, вы всегда можете задать их в комментариях.
На этом все. Удачи вам и успехов в изучении PHP и MySQL.
PHP и MySQL
Запросы MySQL с примерами: часть 2.
Введение
В первой части, основы MySQL и PHP, мы научились подключаться серверу MySQL, выбирать базу данных для работы, узнали PHP-функцию отправки запросов серверу MySQL, узнали два простейших запроса (создание и удаление таблицы), ну и узнали как закрывать соединение.
Теперь мы будем более глубоко изучать запросы MySQL. Итак, приступим!
Создание таблицы — CREATE TABLE
Сейчас у нас пустая база данных, в ней нет таблиц. Поэтому сначала создадим таблицу. Мы уже знаем как это делать из первой части.
Вот код скрипта, который создаст нужную нам табличку:
В нашей таблице только два поля: логин и пароль. Пока что нам больше не нужно, не будем усложнять процесс.
Итак, таблица создана.
Добавление строк (записей) в таблицу — INSERT
Добавить новую строку в таблицу можно при помощи SQL команды insert. Вот пример:
Синтаксис запроса выглядит так:
INSERT INTO имя_таблицы (столбец1, столбец2) VALUE (‘х1’, ‘х2’)
Кавычки во вторых скобках обязательны.
На месте значений могут быть переменные. Вот пример:
Конечно, в этом примере мало смысла. Возможно, новичкам будет полезно услышать, что так в базу данных записываются логины и пароли, которые сообщают пользователи при регистрации. Эти данные хранятся в переменных, потом, после проверки, записываются в базу.
Существует быстрый способ вставки нескольких строк одним запросом INSERT :
Как видим, перечисляемые данные просто отделены запятыми.
Итак, при помощи команды INSERT мы научились добавлять записи в таблицу. Идём дальше.
Просмотр таблицы: команда SELECT
Теперь у нас есть таблица users, в которой есть строки. Прошлый скрипт можно запустить несколько раз, и каждый раз он будет добавлять строку в таблицу. Теперь мы можем не знать, сколько у нас строк в таблице. А хочется знать что у нас в ней записано.
Запросим все данные из таблицы users:
Функция mysqli_query() вернула нам — мы его помещаем в переменную и в дальнейшем будем работать с ним при помощи других функций PHP.
Число записей в запросе
Давайте определим сколько строк в нашем запросе? Я вот запустил скрипт добавления записи в таблицу сам не помню сколько раз и теперь не знаю сколько строк в моей таблице.
Если нам нужно узнать число записей в таблице, то приведённый способ не самый подходящий. Тут мы узнали число записей, найденных в запросе, но число записей в таблице ищется по другому.
Число записей в таблице SELECT COUNT(*)
Обратите внимание, тут мы использовали новую функцию PHP mysqli_fetch_row() для получения данных. Эта функция возвращает ряд результата запроса в форме простого массива, в нашем случае в ряду одно поле и оно имеет индес 0.
Просмотр результата запроса в цикле
После выполнения SQL-запроса с командой SELECT и получения идентификатора результата запроса, PHP создаёт в наборе записей результата внутренний указатель. Этот указатель автоматически перемещается на следующую запись, после обращения к текущей записи. Благодаря этому механизму набор результа запроса SELECT очень удобно просматривать в цикле.
Итак, запрашиваем все данные из таблицы users ( SELECT * FROM users ).
Функция mysqli_fetch_row() возвращает простой массив. В каждой итерации цикла мы получим массив с строкой из таблицы, доступ к полям которой мы можем получить указав числовой индекс.
Также есть функции mysqli_fetch_array() — возвращает любой тип массива, и mysqli_fetch_object() — возвращает объект.
Запрос SELECT DISTINCT — уникальные значения полей
Давайте создадим новую таблицу:
Итак, мы имеем новую, более сложную таблицу с уникальными записями. Сейчас давайте посмотрим, сколько у нас имён в базе данных.
SQL-запрос » SELECT DISTINCT name FROM users » вернул результат со всеми уникальными именами в нашей таблице. Каждое уникальное имя в новой строке результата запроса.
Сортировка результата — ORDER BY
Добавив в SQL-запрос команду ORDER BY мы сортируем результат запроса по возрастанию (цифры и буквы по алфавиту). Вот пример, в котором можно сравнить обычный запрос и отсортированный по возрасту (поле age).
Можете заменить поле age в команде ORDER BY на поле name и посмотреть результат.
Соответствие условию — WHERE
Добавив в SQL-запрос команду WHERE мы запросим только те записи, которые соответствуют условию. Например, сделаем запрос на людей младше 30 лет.
Для этого используем SQL-запрос » SELECT * FROM users WHERE age «.
Также мы можем сразу отсортировать результат по возрастанию age:
» SELECT * FROM users WHERE age «.
Если мы сделаем запрос » SELECT name FROM users WHERE age «, то в результате нам вернут только значения поля «name», но они также будут отсортированы по age.
Мы можем запросить значения двух полей: » SELECT name, age FROM users WHERE age «.
Теперь запросим все пользователей, с именем «Max».
SELECT name FROM users WHERE name!=’Max’
На этом с запросом WHERE всё.
Ограничение записей — LIMIT
Добавив в SQL-запрос команду LIMIT мы ограничим размер результата.
Запрос, который выводит первые три записи: » SELECT * FROM users LIMIT 3 «. Давайте посмотрим как он работает:
Также тут мы использовали запрос: » SELECT * FROM users LIMIT 3, 3 «. Вторая тройка указывает смещение в результате запроса.
Соответствие шаблону — LIKE
Вот пример запроса, который вернёт все записи с именами, начинающимися на букву S.
SELECT * FROM users WHERE name LIKE ‘S%’
Вот пример запроса, который вернёт все записи с фамилиями, заканчивающимися на букву s.
SELECT * FROM users WHERE name LIKE ‘%s’
Соответствие условию — IN
Этот запрос с использованием команды IN вернёт только те строки, которые строго соответствую условию.
Например, нас интересуют люди с возрастом 21, 26 и 33 года.
SELECT * FROM users WHERE age IN (21,26,33)
Максимальное и минимальное значение в столбце
Выбирает максимальное значение age в таблице users.
SELECT max(age) FROM users
Следующий запрос выбирает данные из таблицы users по полям name и age где age принимает минимальное значение.
SELECT name, min(age) FROM users
Обновление записи — UPDATE
Давайте Max Lopes установим возраст 15 лет. Это делается запросом MySQL:
UPDATE users SET age=’15’ WHERE name=’Max’ AND surname=’Lopes’
Обратите внимание на новую команду AND (and — по английски значит «и») в запросе. Если мы не уточним фамилию, то возраст 15 лет будет установлен всем Максам в таблице.
Одним запросом можно обновить два и более полей в одной строке. Делается это следующим образом:
UPDATE users SET age = ’18’, surname = ‘Coocker’ WHERE
В нашей таблице нет поля id, так что этот запрос не сработает на ней. Но это поле, содержащее уникальные номера строк, мы обязательно выучим.
Удалить запись — DELETE
Запрос к базе данных MySQL для удаления записи:
DELETE FROM users WHERE
Опять же, в нашей таблице нет поля id. Но мы можем удалить из неё всех людей, младше 18 лет.
DELETE FROM users WHERE age
Удалить таблицу — DROP TABLE
Запрос к базе данных MySQL который удаляет целиком таблицу users:
Иногда может потребоваться удалить столбец из таблицы, давайте например удалим из users столбец age:
ALTER TABLE users DROP age
Этот запрос MySQL удалил столбец окончательно и безвозвратно.
Иногда может потребоваться добавить столбец в существующую таблицу, давайте например снова добавим в таблицу users столбец age:
ALTER TABLE users ADD age TINYINT UNSIGNED
Иногда может потребоваться переименовать столбец, например столбец age переименовать в vozrast. Делаем это так:
ALTER TABLE users CHANGE age vozrast TINYINT UNSIGNED
Иногда может потребоваться переименовать таблицу:
RENAME TABLE users TO peoples
Удаление базы данных — DROP DATABASE
Этот запрос может удалить базу данных с имененм tester:
DROP DATABASE tester
У меня на денвере этот запрос работает, но на хостинге может и не сработать, если у пользователя базы данных нет прав на выполнение удаления.
Создание базы данных — CREATE DATABASE
Этот запрос создаёт базу данных с имененм tester:
CREATE DATABASE tester
У меня на денвере этот запрос работает, но на хостинге может и не сработать, если у пользователя базы данных нет прав на выполнение удаления.
Итоги
Итак, в этой части мы ознакомились с запросами к MySQL. Многие из рассмотренных нами запросов нам не часто пригодятся в процессе работы, но знать их нужно, так как они точно пригодятся в процессе разработки скриптов.
Некоторые запросы обычно делают только из phpMyAdmin (создание и удаление баз данных например).
В работе сайтов обычно нужно добавить запись в таблицу, редактировать запись или удалить запись из таблицы.
Следующим шагом будет изучение типов данных в MySQL.
Основы работы с PHP MySqli
В связи с прекращением поддержки PHP MySQL в 2011 году для работы с базами данных все более широкое применение находят PDO или MySqli. Они обладают лучшей функциональностью (чем MySQL) и предлагают ООП (объектно-ориентированный интерфейс) API. Какой из них лучше, это тема для другой статьи, в этой статье мы попытаемся разобраться с основами работы с MySqli. Поэтому, без дальнейших предисловий, перейдем к рассмотрению соединения ( connect ), выбора ( select ), вставки ( insert ), обновления ( update ) и удаления ( delete ) записей (данных/документов/информации) посредством PHP MySqli. Надеюсь, что данная статья будет полезна при решении проблем, которые могут возникнуть при работе с PHP MySqli.
Установка MySqli
Соединение с базой данных
MySqli предлагает два способа соединения с базой данных: процедурный и объектно-ориентированный. Рекомендуется использовать объектно-ориентированный. Процедурный похож на (старый) MySql, поэтому для новичков его использование, возможно, будет предпочтительней, стоит помнить, что им пользоваться не рекомендуется.
Ниже показано открытие соединения с базой данных объектно-ориентированным способом. Этот способ будет использоваться и во всех приведенных ниже примерах.
Выбор (SELECT) результирующего ряда в виде ассоциативного массива
mysqli_fetch_assoc() : в приведенном ниже коде происходит извлечение результирующего ряда в виде ассоциативного массива. Возвращаемый массив содержит строки, полученные из базы данных, где имена столбцов будут являться ключом, используемым для доступа к внутренним данным. Как показана ниже, данные отображаются в виде HTML таблицы.
Выбор (SELECT) результирующего ряда в виде массива (ассоциативный, обычный, или в оба)
Выбор (SELECT) результирующего ряда в виде объекта
Выбор (SELECT) одиночного значение
Одиночное значение получить из базы данных можно посредством fetch_object (метод Cameron Spear).
Извлекаем (SELECT COUNT) количество строк в таблице
Иногда нужно узнать количество строк в таблице, особенно при нумерации страниц.
Выбор (SELECT) с помощью шаблонов (prepared statements)
prepared statements — специальный инструмент СУБД, позволяющий ускорить последовательное выполнение повторяющихся запросов, построенных по одному и тому же шаблону.
Одной из особенностей MySqli является возможность использования уже написанных шаблонов: то есть запрос достаточно написать один раз, после чего его можно многократно исполнять с различными параметрами. Использование уже написанных шаблонов улучшает производительность для больших таблицах и сложных запросов. Для предотвращения попадания вредоносного кода анализ каждого запроса производится сервером отдельно.
Тот же запрос с несколькими параметрами:
Вставка (INSERT) записи
Запись ниже вставляет в таблицу новый ряд.
Отрывок ниже вставляет те же значения посредством шаблонов (Prepared Statement). Как мы уже говорили, шаблоны чрезвычайно эффективны против SQL инъекция. Для приведенного примера их использование является оптимальным вариантом.
Вставка (INSERT) нескольких записей
Обновление (Update)/удаление (Delete) записей
Принцип обновление и удаление записей тот же. Достаточно заменить строку запроса на MySql update или delete (не понял, сам смотри).
Обновление с помощью шаблонов (prepared statements)
Пример обновления записи с помощью шаблонов (prepared statements) приведен ниже.
Удаление старых записей
Удалению подвергаются все записи, находящиеся на сервере больше 1 дня; количество дней можно задать самому.
Заключение
Вне сомнения, MySqli существенно лучше стандартного MySql расширения PHP, хотя принципы их работы довольно схожи. Надеюсь, приведенная выше информация окажется полезной при создании и переносе проектов в будущем. Для удобства ниже была реализована возможность скачать файлы примеров. Это можно сделать, нажав на кнопку download.
PHP и Mysqli. Примеры запросов
Работать с базой данных Mysql в PHP можно с помощью:
Оригинальное API MySQL (функции mysql_*), начиная с версии PHP 5.5.0, объявлено как устаревшее (deprecated). Разработчики PHP настоятельно рекомендуют использовать в новых проектах либо mysqli, либо PDO_MYSQL.
Данная статья подскажет, как делать основные запросы с помощью mysqli, с чего начать и от чего оттолкнуться.
В зависимости от предпочтения, запросы можно выполнять либо через процедурный, либо через объектно-ориентированный стиль. В данной статье будет рассмотрен объектно-ориентированный подход, но любители процедурного стиля не сильно должны расстраиваться, поскольку все методы из основных классов зеркалируются в обычные функции.
Начало работы
Создадим класс, через который будем выполнять запросы:
class ourMysqli extends mysqli
<
Здесь ничего сложного — объявляем класс-обертку над основным классом mysqli, через который и будет выполняться все работа с базой данных. В конструктор мы передаем данные доступа и пробуем подключиться, если что-то не так — бросаем Exception.
Выполним инициализацию класса и проверим, все ли хорошо:
Если в результате видим наше название класса — поздравляем, все прошло успешно и можно двигаться дальше!
Простой SELECT-запрос
Рассмотрим следующий пример SELECT-запроса:
// обработка результатов выборки
Следует обратить внимание, что объект mysqli_result возвращается только для запросов вида SELECT, SHOW, DESCRIBE и EXPLAIN, для других типов запросов метод query вернет TRUE в случае успешного выполнения. Если же в SQL-запросе присутствуют ошибки — метод query вернет FALSE, который нужно обработать с помощью Exception.
Обработка результатов
Выбрать для себя удобный способ обработки результатов выборки Вы всегда можете в официальном PHP-мануале.
Простой SELECT-запрос с экранированием данных
Ни в коем случае нельзя подставлять в запросы данные от пользователя в чистом виде, поскольку можно словить SQL-injection. Для экранирования данных используется функция real_escape_string. Запрос может выглядеть следующим образом:
// обработка результатов выборки
Подготовленный SELECT-запрос
В чем удобство подготовленных SELECT-запросов — на базу данных можно возложить ответственность за экранирование данных. Механизм приблизительно следующий:
// В SELECT-запросе нужно указать знаки вопроса в тех местах, где
нужно подставить неэкранированные данные от пользователя.
$selectQuery = SELECT field1, field2, field3
FROM table
WHERE id=?
SQL_QUERY;
// обработка результатов выборки
Пояснение к примеру. Если подготовка запроса проходит успешно (нет ошибок в SQL-запросе) — тогда с помощью метода bind_param подвязываются переменные. Первый параметр содержит строку с типами переменных, последующие параметры — сами переменные, которые нужно «подставить» в запрос.
В нашем примере использовалась одна переменная, тип переменной представлен буквой i, что означает целое число. Всего можно подвязать 4 типа переменных:
Примечание: метод $mysqliStmt->get_result() не будет работать, если не подключен mysqlnd-драйвер. Не все хостинги сайтов на сегодняшний день конфигурируют mysqlnd в минимальные пакеты, поэтому нужно быть внимательным!
Подготовленный SELECT-запрос с произвольным набором переменных для экранирования
Рано или поздно возникает ситуация, когда количество данных для экранирования может быть динамическим, то есть изменяется под влиянием каких-то условий пользовательского интерфейса.
Пример такого SELECT-запроса:
// формируем SQL запрос
$selectQuery = ‘SELECT * FROM table’
// обработка результатов выборки
Пояснения. Для функции bind_param второй и последующий параметр должны быть переменными, переданными по ссылке. В php 5.3 изменилось поведение для массивов, в call_user_func_array нельзя просто передать обычный массив. Нужно обойти все значения из массива и сделать так, чтобы на элементы массива можно было ссылаться по ссылке, что и делается с помощью функции refArrayValues.
Выполнение INSERT, UPDATE и DELETE запросов
Запросы на обновление данных (INSERT, UPDATE, REPLACE, DELETE) выполняются аналогично запросам SELECT. Например: