include("compteur.php"); ?>
Урок 16. MySQL и PHP.Человек живет только для того, чтобы учиться... Итак, на прошлом уроке мы познакомились с базой данных MySQL и рассмотрели использование некоторых ее операторов. Теперь же настало время применить полученные знания в программировании на PHP, и на сегодняшнем уроке мы рассмотрим взаимодействие MySQL с этим языком вебпрограммирования. Соединение с MySQL.Прежде, чем начать работу с базой данных, необходимо создать соединение с сервером MySQL. Этим и занимается функция mysql_connect(). Она должна быть вызвана до каких-либо других функций работы с MySQL, в противном случае они возвратят ошибки. Аналогом функции mysql_connect является функция mysql_pconnect. Их отличие состоит в том, что последняя открывает постоянное соединение с MySQL, благодаря чему снижаются расходы времени и ресурсов на создание новых соединений. Это постоянное соединение не уничтожается ни функцией закрытия соединения, ни каким-либо другим образом. Использование этой функции требуется в случае, если вашему веб-приложению приходится часто обращаться к MySQL. Но учтите, что mysql_pconnect работает только на сервере, где PHP установлен как модуль. Выбор или создание базы данных.Вторым шагом при работе с MySQL чаще всего становится выбор базы данных для дальнейшей работы, либо создание новой базы данных. Создание базы данных осуществляет функция mysql_create_db().
Имя базы данных может состоять из любых символов, используемых для задания имени директорий на сервере, исключая символы '/', '\', '.'. Идентификатор соединения есть результат выполнения функции mysql_connect или mysql_pconnect. Для дальшейшей работы с базой данных вы должны ее выбрать. Выбор базы данных осуществляется функцией mysql_select_db(). Ее синтаксис выглядит следующим образом:
Запросы в MySQL.Пожалуй, самая универсальная функция для работы с MySQL - mysql_query(). Она может заменить практически любую функцию работы с базами данных MySQL, исключая mysql_connect() и mysql_close(). В качестве одного из аргументов ей передается запрос MySQL - наподобие тех, которыми мы занимались на прошлом занятии. Например, с помощью нее мы можем создать базу данных, не используя вышерассмотренную функцию mysql_create_db().
Предположим, мы хотим ввести данные в базу данных, созданную на прошлом уроке.
А теперь давайте выберем данные, которые ввели на этом и прошлом уроке. Это делается следующим образом:
Заметьте, что mysql_query возвращает не сам результат, а идентификатор результата, который может быть использован другими функциями. Таким образом, $result в примере выше не содержим необходимую нам информацию в явном виде, его значение - лишь ссылка на нее. Извлечение информации.Чтобы извлечь информацию в понятную нам форму, необходимо воспользоваться функциями mysql_fetch_array(), mysql_fetch_row() или другими более специфическими функциями. Функция mysql_fetch_array(), использованная в примере выше, осуществляет выборку записи в виде ассоциативного массива. Заметьте, эта функция, как и другие функции извлечения информации, не работает непосредственно с MySQL, а лишь обрабатывает полученный результат, поэтому ссылка на идентификатор соединения для работы этой функцией не требуется. Ее обязательный аргумент - лишь идентификатор результата, полученный функцией mysql_query(). За каждый раз своего выполения эта функция обрабатывает лишь одну строку результата, тем самым, чтобы получить данные из всего результата выполнения mysql_query, необходимо использовать функцию в цикле. Например:
Данный пример может вывести у вас непонятные символы - текст в неизвестной кодировке. Это связано с тем, что MySQL использует по умолчанию кодировку latin, тогда как отображение данных происходит на веб-странице с кодировкой, скорее всего, windows-1251. Тем самым, данные введенные посредством одной кодировки и показанные - другой, превращаются в абракадабру. Но если вы будете вводить данные через веб-интерфейс и выводить через него же, то "смешения" кодировок не произойдет, и текст будет выводиться в нормальном виде. Функция mysql_fetch_row() аналогична вышерассмотренной функции, за исключением того, что она возвращает пронумерованный массив, а не ассоциативный. В случае, когда идентификатор результата содержит значения небольшого количества полей, или, что еще лучше, одного, то тогда становится удобным размещать данные не в массиве, а в отдельных переменных. Этим и занимается функция mysql_result(). Она имеет несколько более сложный синтаксис, чем mysql_fetch_array, поэтому рассмотрим его подробнее:
Номер записи - это номер строки, из которой требуется получить данные. Поле - это название или номер поля указанной записи, из которой необходимо получить данные.
Так как мы сделали выборку только по одному полю, то третий аргумент функции mysql_result() необязателен. Закрытие соединения с MySQL.При завершении работы скрипта PHP самостоятельно закрывает соединение с сервером MySQL, так что вы можете не заботиться об этом. Но все же правилом хорошего тона считается принудительное закрытие соединения после выполнения всех необходимых операций с базами данных. Закрытие соединения осуществляется с помощью функции mysql_close(). В заключение.Конечно, все функции PHP для работы с данными MySQL невозможно охватить в пределах одного урока. Мы разобрали самые важные и наиболее используемые из них. Настоятельно рекомендую ознакомиться с другими в документации PHP. На этом и закончим наш урок. До встречи. |