Полная поддержка 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 можно подключиться к базе данных и просмотреть содержимое таблицы. Для этого необходимо выполнить следующие действия.
MySQL и PHP
 А теперь проделаем это же с помощью 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";
MySQL и PHP