Полная поддержка MySQL у PHP появилась, начиная с версии 3.x, хотя и более ранние версии MySQL позволяли сделать это с помощью специальных переменных, задаваемых для активизации модуля поддержки MySQL во время компиляции. Начиная с версии 4.x, PHP поставляется с поддержкой MySQL, активизированной по умолчанию, что является еще одним подтверждением популярности комбинации PHP-MySQL.
Как уже обсуждалось в главе 18, "Программный интерфейс MySQL", функции MySQL, работающие в комплекте c PHP, были разработаны для выполнения четырех главных задач:
1. соединение с базой данных;
2. выполнение запросов;
3. обработка результатов работы запросов;
4. предоставление отладочной и диагностической информации.
Для того чтобы показать эти функции в работе, рассмотрим пример подключения PHP к базе данных и выборки результирующего набора с последующим форматированием их для отображения на Web-странице.
Использованная в этом примере база данных состоит из одной таблицы employees, содержащей список регистрационных идентификаторов пользователей. Для инициализации этой таблицы нужны следующие SQL-запросы.
Листинг 21.2.
CREATE TABLE employees (
uname varchar(25) NOT NULL, fname varchar(l00) NOT NULL, PRIMARY KEY (uname)
);
INSERT INTO employees (uname, fname) VALUES ('john', 'John Doe'); INSERT INTO employees (uname, fname) VALUES ('sarah', 'Sarah Jane'); INSERT INTO employees (uname, fname) VALUES ('tim', 'Tim Shaw'); INSERT INTO employees (uname, fname) VALUES ('jane', 'Jane Smith');
Теперь с помощью клиента mysql можно подключиться к базе данных и просмотреть содержимое таблицы. Для этого необходимо выполнить следующие действия.
А теперь проделаем это же с помощью PHP. Запустим запрос SELECT по базе данных и отобразим соответствующие результаты на HTML-странице.
Листинг 21.4.
<html>
<head>
<basefont face="Arial">
</head>
<body>
<?php
// задать переменные доступа к серверу $host = "localhost"; $user= "joe"; $pass = "secret"; $db = "db123";
// открыть соединение с базой данных
$connection = mysql_connect($host, $user, $pass) or die ("Невозможно
подключиться!");
// выбрать рабочую базу данных
mysql_select_db($db) or die (" Невозможно выбрать рабочую базу данных!");
// создать строку SQL-запроса $query = "SELECT * FROM employees";
// выполнить запрос и получить результирующий набор
$result = mysql_query($query) or die ("Ошибка в запросе: $query. " .
mysql_error());
// есть строки в результирующем наборе?
if (mysql_num_rows($result) > 0)
{
// да
// просмотр результирующего набора // отформатировать результат в виде таблицы echo "<table cellpadding=10 border=1>"; while($row = mysql_fetch_row($result))
{
echo "<tr>";
echo "<td>" . $row[0] . "</td>";
echo "<td>" . $row[1] . "</td>";
echo "</tr>";
}
echo "</table>";
}
else
{
// нет
// распечатать сообщение об ошибке echo " строк не обнаружено !";
}
// освободить память, занятую результирующим набором
mysql_free_result($result);
// закрыть соединение
mysql_close($connection);
?>
</body> </html>
Результат работы этого сценария можно увидеть на рис. 21.2.
Как видно, использование PHP для извлечения данных предполагает несколько шагов, в каждом из которых используется предопределенный вызов функции PHP. Рассмотрим каждый шаг в отдельности.
Сначала зададим данные, необходимые для установления соединения с сервером базы данных. Эта информация включает имя сервера, имя пользователя, пароль, необходимый для доступа к серверу, и имя базы данных, к которой будет осуществляться запрос. Все эти значения присваиваются переменным PHP.
Листинг 21.5.
// задать переменные доступа к серверу $host = "localhost"; $user= "joe"; $pass = "secret";
$db = "db123";
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. MySQL и PHP. Продолжение.
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. MySQL и PHP | Все о MySQL. MySQL и PHP. Думая о будущем |