Меню сайта
Категории раздела
HTML [44] |
Visual C++ и MFC [21] |
c++ [78] |
php [19] |
Javascript [15] |
C# [51] |
загрузки [0] |
XNA
[10]
создание игр с помощью xna
|
Наш опрос
Друзья сайта
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » php |
Урок 16
Карлос Кастанеда. Учение Дона Хуана. Итак, на прошлом уроке мы познакомились с базой данных MySQL и рассмотрели использование некоторых ее операторов. Теперь же настало время применить полученные знания в программировании на PHP, и на сегодняшнем уроке мы рассмотрим взаимодействие MySQL с этим языком вебпрограммирования. Соединение с MySQL. Прежде, чем начать работу с базой данных, необходимо создать соединение с сервером MySQL. Этим и занимается функция mysql_connect(). Она должна быть вызвана до каких-либо других функций работы с MySQL, в противном случае они возвратят ошибки. Аналогом функции mysql_connect является функция mysql_pconnect. Их отличие состоит в том, что последняя открывает постоянное соединение с MySQL, благодаря чему снижаются расходы времени и ресурсов на создание новых соединений. Это постоянное соединение не уничтожается ни функцией закрытия соединения, ни каким-либо другим образом. Использование этой функции требуется в случае, если вашему веб-приложению приходится часто обращаться к MySQL. Но учтите, что mysql_pconnect работает только на сервере, где PHP установлен как модуль. Выбор или создание базы данных. Вторым шагом при работе с MySQL чаще всего становится выбор базы данных для дальнейшей работы, либо создание новой базы данных. Создание базы данных осуществляет функция mysql_create_db().mysql_create_db(имя базы данных, [идентификатор соединения]); Имя базы данных может состоять из любых символов, используемых для задания имени директорий на сервере, исключая символы '/', '\', '.'. Идентификатор соединения есть результат выполнения функции mysql_connect или mysql_pconnect. Для дальшейшей работы с базой данных вы должны ее выбрать. Выбор базы данных осуществляется функцией mysql_select_db(). Ее синтаксис выглядит следующим образом:mysql_select_db(имя базы данных, [идентификатор соединения]); Запросы в MySQL. Пожалуй, самая универсальная функция для работы с MySQL - mysql_query(). Она может заменить практически любую функцию работы с базами данных MySQL, исключая mysql_connect() и mysql_close(). В качестве одного из аргументов ей передается запрос MySQL - наподобие тех, которыми мы занимались на прошлом занятии. Например, с помощью нее мы можем создать базу данных, не используя вышерассмотренную функцию mysql_create_db(). $link = mysql_connect('somehost.ru', 'artem', '123456') or die("Не могу соединиться"); mysql_query("CREATE database my_db", $link) or die("Ошибка запроса"); Предположим, мы хотим ввести данные в базу данных, созданную на прошлом уроке. $link = mysql_connect('somehost.ru', 'artem', '123456') or die("Не могу соединиться"); mysql_select_db('myphp', $link); $query = "INSERT INTO lessons (title, body) VALUES ( 'Выражаемся по-ПиЭйчПовски', 'Итак, на прошлом уроке я обещал начать урок 3 с изучения следующего, четвертого типа данных...' )"; mysql_query($query, $link); А теперь давайте выберем данные, которые ввели на этом и прошлом уроке. Это делается следующим образом:// предположим, что уже соединились с MySQL // и выбрали базу данных 'myphp' $query = "SELECT title, body FROM lessons"; $result = mysql_query($query, $link); while ($row = mysql_fetch_array($result)) { echo "<h1>".$row['title']."</h1><p>"; echo $row['body']."</p>"; } Заметьте, что mysql_query возвращает не сам результат, а идентификатор результата, который может быть использован другими функциями. Таким образом, $result в примере выше не содержим необходимую нам информацию в явном виде, его значение - лишь ссылка на нее. Извлечение информации. Чтобы извлечь информацию в понятную нам форму, необходимо воспользоваться функциями mysql_fetch_array(), mysql_fetch_row() или другими более специфическими функциями. Функция mysql_fetch_array(), использованная в примере выше, осуществляет выборку записи в виде ассоциативного массива. Заметьте, эта функция, как и другие функции извлечения информации, не работает непосредственно с MySQL, а лишь обрабатывает полученный результат, поэтому ссылка на идентификатор соединения для работы этой функцией не требуется. Ее обязательный аргумент - лишь идентификатор результата, полученный функцией mysql_query(). За каждый раз своего выполения эта функция обрабатывает лишь одну строку результата, тем самым, чтобы получить данные из всего результата выполнения mysql_query, необходимо использовать функцию в цикле. Например:$result = mysql_query("SELECT id, title FROM lessons", $link); $first_row = mysql_fetch_array($result); echo "Первая запись:<br>".$first_row['id']." - ".$first_row['title']."<br>"; echo "Остальные записи:<br>"; while ($row = mysql_fetch_array($result)) { echo $row['id']." - ".$row['title'].'<br>'; } Данный пример может вывести у вас непонятные символы - текст в неизвестной кодировке. Это связано с тем, что MySQL использует по умолчанию кодировку latin, тогда как отображение данных происходит на веб-странице с кодировкой, скорее всего, windows-1251. Тем самым, данные введенные посредством одной кодировки и показанные - другой, превращаются в абракадабру. Но если вы будете вводить данные через веб-интерфейс и выводить через него же, то "смешения" кодировок не произойдет, и текст будет выводиться в нормальном виде. Функция mysql_fetch_row() аналогична вышерассмотренной функции, за исключением того, что она возвращает пронумерованный массив, а не ассоциативный. В случае, когда идентификатор результата содержит значения небольшого количества полей, или, что еще лучше, одного, то тогда становится удобным размещать данные не в массиве, а в отдельных переменных. Этим и занимается функция mysql_result(). Она имеет несколько более сложный синтаксис, чем mysql_fetch_array, поэтому рассмотрим его подробнее:mysql_result(идентификатор результата, номер записи, [поле]); Номер записи - это номер строки, из которой требуется получить данные. Поле - это название или номер поля указанной записи, из которой необходимо получить данные.$result = mysql_query("SELECT title FROM lessons", $link); $title1 = mysql_result($result, 0); $title2 = mysql_result($result, 1); Так как мы сделали выборку только по одному полю, то третий аргумент функции mysql_result() необязателен. Закрытие соединения с MySQL. При завершении работы скрипта PHP самостоятельно закрывает соединение с сервером MySQL, так что вы можете не заботиться об этом. Но все же правилом хорошего тона считается принудительное закрытие соединения после выполнения всех необходимых операций с базами данных. Закрытие соединения осуществляется с помощью функции mysql_close(). В заключение. Конечно, все функции PHP для работы с данными MySQL невозможно охватить в пределах одного урока. Мы разобрали самые важные и наиболее используемые из них. Настоятельно рекомендую ознакомиться с другими в документации PHP. На этом и закончим наш урок. До встречи. | |
Просмотров: 495 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |