Использование MySQL в PHP сценарияхОдной из причин популярности сервера баз данных MySQL, наряду с ее доступностью и производительностью, можно считать ее интеграцию с PHP. При этом производительность связки PHP, Apache и MySQL в большинстве случаев можно считать одной из самых высоких в сравнении с другими решениями. Стандартная сборка PHP почти всегда включает в себя библиотеки для работы с MySQL, предоставляя разработчикам все необходимые инструменты для взаимодействия с сервером баз данных. Функции для работы с MySQL, которые доступны при написании проектов с использованием PHP, решают главные задачи, возникающие при необходимости обращения к базе данных из сценария PHP - соединение с сервером баз данных, передача ему запроса и извлечение результатов, которые вернул сервер.
Перед тем как мы получим возможность работать с информацией, хранимой в базе данных, необходимо установить соединение с сервером баз данных. Для этого предназначены 2 функции PHP, почти ничем не отличающиеся по результатам действия: mysql_pconnect() и mysql_connect(). Единственное отличие этих функций заключается в том, что первая из них устанавливает постоянное соединение с сервером баз данных, которое остается открытым даже после того, как ваш сценарий будет выполнен, и его невозможно будет закрыть даже функцией mysql_close(). Когда в вашем PHP-сценарии запускается функция mysql_pconnect(), она предварительно проверит, нет ли открытого ранее постоянного соединения, и если оно есть, то открывать новое она уже не будет. Подобный подход экономит время и снимает нагрузку с сервера баз данных. Тогда для чего может понадобиться вторая функция? Дело в том, что количество соединений с сервером баз данных, которое может существовать одновременно, ограничено, и устанавливается в конфигурации MySQL параметром max_connectors. Также количество соединений ограничено и параметром конфигурации сервера Apache MaxClients, причем необходимо следить за соответствием этих параметров, чтобы у каждого процесса Apache при необходимости было свое соединение с MySQL. С этой точки зрения вам может понадобиться в каких-либо случаях открыть соединение с базой данных, извлечь необходимые данные, а после этого освободить соединение для других процессов веб-сервера. Первым делом необходимо установить соединение с сервером баз данных Помимо соединения с сервером баз данных, нам необходимо выполнить аналог команды SQL-языка, выбирающий базу данных для последующей работы, USE имя_базы - функцию mysql_select_db(). Возможно, имеет смысл эти две задачи (установление соединения с сервером и выбор базы данных) вынести в отдельный модуль PHP и использовать его по мере необходимости:
Помимо уже упоминавшихся ранее функций, в этом примере была использована еще одна функция - mysql_error(). Она позволяет получить информацию об ошибках, которые произошли при работе с активной на данный момент базой данных. Подобной функцией не следует пренебрегать хотя бы на этапе разработки, чтобы своевременно получать подробную информацию о возникших проблемах. После успешного соединения с сервером база данных ему можно передавать SQL-запросы с помощью команды mysql_query(). При выполнении некоторых запросов - например, UPDATE или INSERT - может понадобиться только передать информацию серверу, но в большинстве случаев необходимо также получить результаты, которые вернул запрос:
Обратите внимание, что запрос хранится в строковой переменной, и при занесении и извлечении данных может возникнуть проблема вложенных кавычек, которую можно решить использованием одинарных кавычек в запросе, или при необходимости экранированием обычных кавычек: ". Кавычки также могут встретиться и неявно, когда в SQL-запрос передается информация из других строковых переменных PHP. В подобных случаях следует использовать функцию PHP AddSlashes(), позволяющую экранировать кавычки в символьных данных, и StripSlashes(), позволяющую убрать экранирующие символы в данных, извлеченных из базы. Помимо этого, следует рассмотреть случай, когда данные в базу будут вводиться непроверенным пользователем, а сразу после извлечения из базы - использоваться для генерации html-страницы, например, гостевой книги, и исключить в этом случае потенциальную опасность использования пользователем тегов и команд javascript, преобразовав хранимые данные с помощью функции PHP htmlspecialchars(). После того как мы получили информацию от сервера баз данных и сохранили ее в переменной $result, перед нами встает задача извлечь из этой переменной информацию. Например, с помощью функции mysql_num_rows() можно узнать количество строк в итоговой выборке, полученной по запросу:
Особняком стоят случаи, когда мы не извлекаем, а вносим изменения в хранимую в базе данных информацию. В таких случаях очень часто может понадобиться узнать, в какое количество строк внес изменения наш SQL-запрос при выполнении таких команд, как INSERT, DELETE, UPDATE. В этом случае вместо функции mysql_num_row() нужно использовать функцию mysql_affected_rows(), которая и вернет необходимую информацию. Обрабатывайте предварительно информацию пред занесением в БД Большинство SQL-запросов выполняется с помощью функции mysql_query(), но, как уже упоминалось выше, для выбора базы данных используется отдельная функция. Отдельные функции также существуют как для создания новой базы данных, так и для удаления уже существующей:
Источник: rznhost.com |
КОНТАКТЫ
г. Екатеринбург info@vismech.ru |
текущее: НОВОСТИ 05.12.2013 - Уход за флэш-накопителем 05.12.2013 - Компьютер самопроизвольно выключается 05.12.2013 - Почему не запускается компьютер? 27.11.2013 - Canon Legria HF R406 - Описание видеокамеры 27.11.2013 - TravelMate P645 новый лэптоп бизнес-класса от Acer |