|
Программирование >> Создание клиентов mysql
MySQL - это наиболее популярная СУБД среди программистов, работающих на языке РНР. Обе эти системы извлекают преимущества из популярности друг друга. В частности, для MySQL выгодно растущее число сторонников писать Web-приожения на РНР, а дя РНР выгодна высокая оперативность команды разработчиков MySQL. Монти Видениус, ответственный за сопровождение MySQL, входит в группу разработчиков ядра РНР и является членом зала славы РНР (hup: www. zend. com /zend/hof/). РНР - это серверный язык сценариев, предназначенный для встраивания кода в HTML-файлы с помощью специальных тэгов. Он поддерживает работу с MySQL, определяя собственные функции- оболочки , которые содержат вызовы функций библиотеки языка С (рассматривалась в главе 15, Библиотека функций языка С ). Описание функций РНР можно найти на Web-узле www.php.net. Подготовка программы В РНР имеются собственные средства поддержки MySQL. В двоичные дистрибутивы входит модуль расширения MySQL, а в исходный дистрибутив включен каталог с исходными кодами, предназначенными для реализации интерфейса к этой СУБД. Если пакет РНР компилируется из исходных текстов, то внешняя библиотека функций MySQL не нужна: она входит в состав пакета. РНР хорошо взаимодействует не только с сервером Apache, но и с сервером IIS в Windows. В любом случае Web-сервер должен быть настроен таким образом, чтобы файлы, имеющие расширение были ассоциированы с модулем РНР. Подключиться к серверу MySQL енария несложно. Достаточно вызвать функции onnect {) ии mysql pconnecH ) с соответствующими аргументами. Обе функции возвращают идентификатор соединения, требуемый для боль- шинства остальных функций. Функции connect () создает постоянное соединение. Оно будет сохранено после завершения сценария на случай повторного использования. Такие соединения закрывать не нужно. Первый аргумент функции mysql pconnect () идентифицирует сервер по имени или адресу. Через двоеточие может быть задан номер порта, если он отличается от стандартного (3306). Аналогичным образом задается сокет. Другими двумя аргументами являются имя пользователя и пароль. В листинге 19.1 показан сценарий, который устанавливает соединение с сервером MySQL на узле localhost и задает базу данных, используемую по умолчанию. В сценарии не выполняется проверка ошибок, но модуль РНР выдаст предупреждение в случае неудачного завершения одной из функций. <htl> <head> <title>minimal.php</title> </head> <body> <? Открытие постоянного соединения. $dblink = mysql pconnect( localhost , leon , ); Выбор базы данных test. mysql select db{ test , $dbLink); ?> </body> </html> Извлечение данных После подключения к серверу баз данных можно посылать ему запросы с помощью функции mysql query(). Эта функция принимает в качестве аргумента текст SQL-инструкции плюс идентификатор соединения, полученный от функции mysql connect () или mysql pconnect (), и возвращает идентификатор результирующего набора записей. В случае ошибки возвращается нуль. Функция mysql result () извлекает значение одной ячейки, но гораздо удобнее пользоваться функцией mysql fetch row(), mysql fetch array() или mysql fetch object(). Все они возвращают следующую запись из указанного набора, что позволяет эффективно применять их в цикле while. Рассмотрим пример, показанный в листинге 19.2. Этотсценарий извлекает записи из таблицы user, оформляя результаты запроса в виде HTML-таблицы. Обратите внимание на то, что сценарий пытается подключиться к серверу от имени пользователя root с явно неправильным паролем. Если будете экспериментировать с этим сценарием, подставьте корректные значения имени пользователя и пароля. Извлечение данных 403 <html> <head> <title>select.php</title> </head> <body> <? Открытие постоянного соединения. if(!($dbLink = mysql pconnect( localhost , root , pass )) print( Could not connect to server!<br>\n ) print (mysql errno () . : . inysql error () exit 0 ; <br>\n ); Выбор базы данных mysql. if(!mysql select db( mysql , $dbLink)) print( Could not select database!<br>\n ) ; print(mysql errno() . : . mysql error() . <br>\n ); exit{); Выполнение запроса. $Query - SELECT User, Host FROM user ORDER BY 1,2 ,-if(!($dbResult = mysql query($Query, $dbLink))) { print( Could not execute query!<br>\n ); print (mysqlerrno () . : . mysqlerror () exit(); <br>\n ); print( <table border=\ l\ cellspacing=\ 0\ >\n ); Получение информации о столбцах. print( <tr>\n ); while($field = mysql fetch field($dbResult)) { print( <th>$field->name</th>\n ); print( </tr>\n ); Извлечение записей. while($row = mysql fetch row($dbResult)) { print( <tr>\n ); foreach($row as $r) print( <td>$r4nbsp;</td>\n ); print( </tr>\n ); print( </table>\n ); ?> </body> </html>
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |