Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Использование MySQL в&nb p;PHP сценариях

 

Использование MySQL в&nb p;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 и использовать его по мере необходимости:


<?
$db = "my_base"; //Имя базы данных
$user = "root"; //Пользователь сервера баз данных
$pass = ""; //Пароль
$server = "localhost"; //Имя сервера
//Создание соединения
$link = mysql_connect($server, $user, $pass);
if(!$link) die("Не могу соединиться с MySQL");
mysql_select_db($db) or die("Не могу открыть $db: ".mysql_error());
?>

Не забывайте выводить информацию об ошибках Помимо уже упоминавшихся ранее функций, в этом примере была использована еще одна функция — mysql_error(). Она позволяет получить информацию об ошибках, которые произошли при работе с активной на данный момент базой данных. Подобной функцией не следует пренебрегать хотя бы на этапе разработки, чтобы своевременно получать подробную информацию о возникших проблемах.

После успешного соединения с сервером база данных ему можно передавать SQL-запросы с помощью команды mysql_query(). При выполнении некоторых запросов — например, UPDATE или INSERT — может понадобиться только передать информацию серверу, но в большинстве случаев необходимо также получить результаты, которые вернул запрос:


<?
$query = "SELECT * FROM countries";
$result = mysql_query($query, $link) or die(mysql_error());
?>

Обрабатывайте предварительно информацию пред занесением в БД Обратите внимание, что запрос хранится в строковой переменной, и при занесении и извлечении данных может возникнуть проблема вложенных кавычек, которую можно решить использованием одинарных кавычек в запросе, или при необходимости экранированием обычных кавычек: \". Кавычки также могут встретиться и неявно, когда в SQL-запрос передается информация из других строковых переменных PHP. В подобных случаях следует использовать функцию PHP AddSlashes(), позволяющую экранировать кавычки в символьных данных, и StripSlashes(), позволяющую убрать экранирующие символы в данных, извлеченных из базы. Помимо этого, следует рассмотреть случай, когда данные в базу будут вводиться непроверенным пользователем, а сразу после извлечения из базы — использоваться для генерации html-страницы, например, гостевой книги, и исключить в этом случае потенциальную опасность использования пользователем тегов и команд javascript, преобразовав хранимые данные с помощью функции PHP htmlspecialchars().

После того как мы получили информацию от сервера баз данных и сохранили ее в переменной $result, перед нами встает задача извлечь из этой переменной информацию. Например, с помощью функции mysql_num_rows() можно узнать количество строк в итоговой выборке, полученной по запросу:


<?
$num_of_rows = mysql_num_row($result);
?>

Самой востребованной функцией для извлечения данных из результата запроса можно считать mysql_fetch_row(). Она возвращает массив, элементы которого содержат значения столбцов строки. С помощью нее можно извлечь и обработать все строки, которые вернул запрос:


<?
while($data = mysql_fetch_row($result))
{
echo $data[0];
//обработка данных строки
}
?>

Подобную задачу можно решить также с помощью функции, возвращающей ассоциативный массив: mysql_fetch_array(), что в некоторых случаях будет гораздо удобнее. Ключи возвращаемого массива будут иметь названия полей строки.

Особняком стоят случаи, когда мы не извлекаем, а вносим изменения в хранимую в базе данных информацию. В таких случаях очень часто может понадобиться узнать, в какое количество строк внес изменения наш SQL-запрос при выполнении таких команд, как INSERT, DELETE, UPDATE. В этом случае вместо функции mysql_num_row() нужно использовать функцию mysql_affected_rows(), которая и вернет необходимую информацию.

Для работы с базами используются отдельные функции Большинство SQL-запросов выполняется с помощью функции mysql_query(), но, как уже упоминалось выше, для выбора базы данных используется отдельная функция. Отдельные функции также существуют как для создания новой базы данных, так и для удаления уже существующей:


<?
//Создание базы данных
mysql_create_db("new", $link);
//Удаление базы данных
mysql_drop_db("new", $link);
?>

Для отсоединения от сервера баз данных существует функция mysql_close(), но, как правило, в ее использовании нет необходимости. Если было установлено постоянное соединение, то команда на закрытие его будет проигнорирована, а в случае использования функции mysql_connect() соединение будет разорвано по окончании работы PHP-сценария.

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "Использование MySQL в&nb p;PHP сценариях":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Мастерство использования robot .txt файлов

Упростить работу по оптимизации можно используя файлы robots.txt. Они представляют собой простые файлы, указывающие роботам, паукам поисковой системы, какие файлы индексировать в базу данных, а какие нет. В данной статье будут представлены доказательства важности robots.txt для процесса оптимизации, а также возможные последствия не использования или использования неверно составленных файлов robots.txt.

» Продвижение и оптимизация - 2221 - читать


Недостатки использования идентификаторов сессий при продвижении сайтов

Идентификатор сессий представляет собой уникальный параметр вида &session_id= (&c_id=), который при каждом посещении пользователем страницы добавляется к ее url. Основными предназначениями идентификаторов сессий является возможность сбора точной информации о том, как вел себя тот или иной пользователь на сайте (электронные биржи и крупные интернет-магазины), а также сохранение серверной памяти. Вместе с тем, идентификаторы сессий могут явиться причиной некоторых серьезных п ...

» Продвижение и оптимизация - 2858 - читать


Где применяется MySQL?

В переговорах с разными людьми из мира ИТ-индустрии я неоднократно сталкивался с разными мнениями — от "все, что не является мощной коммерческой СУБД — это ничего не стоящее ПО, которое нельзя использовать для серьезной работы" и до почти наполеоновских планов "все на OpenSource!". Речь идет, конечно, о применении СУБД MySQL для создания коммерческих проектов — корпоративных порталов, серьезных веб-приложений, интранет-сайтов компаний и так далее. Одна из ...

» Интересное в сети - 4324 - читать


Импорт данных в&nb p;базы MySQL

В предыдущей статье — « Резервирование баз MySQL» — рассказывалось о методах и инструментах создания резервных копий информации из таблиц MySQL. Но не менее часто возникает и другая, обратная задача — загрузить существующую информацию в базу данных или отдельную таблицу.

» Интересное в сети - 3685 - читать


Искусство запроса SELECT в&nb p;MySQL

Проектирование, создание и наполнение базы данных — это подготовительные шаги для последующего извлечения информации из нее: выборки записей, предоставления их пользователю и последующей их обработки как средствами сервера баз данных, так и скриптовыми языками. Для выполнения этой задачи предназначен наиболее часто используемый и, вероятно, самый сложный оператор языка SQL — оператор SELECT. Используя его возможности, можно легко извлечь практически любую необхо ...

» Интересное в сети - 2455 - читать



Статья на тему Интернет » Интересное в сети » Использование MySQL в&nb p;PHP сценариях

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru