ТОП PHP скрипт сегодня: Best Poll

Вы Тут:

Главная ›› Книги ›› PHP 5.0 для чайников ›› Работа с данными MySQL

Работа с данными MySQL

В результате выполнения программы в предыдущем примере мы создали структуру базы данных. Теперь рассмотрим добавление, удаление и изменение данных. Например, внесем несколько записей в нашу таблицу book. Для этого в строке запроса используется ключевые слова INSERT INTO (листинг 12.5).

Листинг 12.5. Добавление данных

<html>
<head>
<title> Добавление данных </title>
</head>
<body>
<?php
$sdb_name = "localhost";
$user_name = "root";
$user_password = "";
$db_name = "test_db";
// соединение с сервером базы данных

if (!$link = mysql_connect($sdb_name, $user_name, $user_password))
{
  echo "<br>He могу соединиться с сервером базы данных<br>";
  exit();
}

// выбираем базу данных
if (!mysql_select_db($db_name, $link))
{
  echo "<br>He могу выбрать базу данных<br>";
  exit();
}

// строка запроса
$str_sql_query = "INSERT INTO book (name, author, num_pages) VALUES ('Самоучитель PHP','Александр','222')";

// выполнение запроса
if (!mysql_query($str_sql_query, $link))
{
  echo "<br>He могу выполнить запрос<br>";
  exit();
}
echo "<br>Запись добавлена успешно<br>";

// закрытие соединения с сервером базы данных
mysql_close($link);
?>
</body>
</html>

После запуска этого сценария, в таблице book появится запись о книге «Самоучитель РНР», автор которой некий Александр, а количество страниц равно 222. Обратите внимание, что поле id не указанно в запросе. Дело в том, что при создании оно было отмечено с параметром AUTO_INCREMENT (авто увеличение). Другими словами, при добавлении записи это поле автоматически получает значение на единицу больше, чем в предыдущей записи. Отсчет начинается с единицы.

Таким образом, можно добавлять другие записи. Дальше мы будем работать с таблицей, данные которой представлены ниже на рисунке.

Добавление данных в MySQL

Для удаления записей используется SQL-запрос с ключевым словом DELETE. Пример:
DELETE FROM book WHERE author = 'Александр'

Несложно заметить, что после слов DELETE FROM нужно указать имя базы данных (book), а затем условие, по которому можно найти записи для удаления.

Для изменения уже существующих данных используется команда UPDATE. Пример:
UPDATE book SET num_pages = 333 WHERE name = 'Самоучитель PHP'

После слова UPDATE нужно указать имя таблицы, где необходимо изменить данные. Затем задается новое значение (в нашем случае мы изменяем количество страниц с, 222 на 333) и условие.

Тем не менее наиболее часто требуется не добавлять и удалять данные, а выводить их. При этом можно задавать различные условия вывода, например с ограничением страниц или определенного автора. Вариаций на эту тему можно придумать великое множество. Однако в нашем случае главное уяснить, как можно получить данные и как с ними работать.

Рассмотрим простой пример, в котором в окне браузера будет выводиться вся информация о книгах, имеющихся в таблице book (листинг 12.6).

Листинг 12.6. Вывод данных из таблицы

<html>
<head>
<title> вывод данных из таблицы </title>
</head>
<body>
<?php
$sdb_name = "localhost";
$user_name = "root";
$user_password = "";
$db_name = "test_db";

// соединение с сервером базы данных
if (!$link = mysql_connect($sdb_name, $user_name, $user_password))
{
  echo "<br>He могу соединиться с сервером базы данных<br>";
  exit();
}

// выбираем базу данных
if (!mysql_select_db($db_name, $link))
{
  echo "<br>He могу выбрать базу данных<br>";
  exit();
}

//строка запроса
$str_sql_query = "SELECT * FROM book";

// выполнение запроса
if (!$result = mysql_query($str_sql_query, $link))
{
  echo "<br>He могу выполнить запрос<br>";
  exit();
}

// вывод результата запроса
while ($mas = mysql_fetch_row($result))
{
  foreach ($mas as $field)
  {
    echo $field . " ";
  }
  echo "<br>";
}

// закрытие соединения с сервером базы данных
mysql_close($link);
?>
</body>
</html>

Несмотря на то, что большая часть кода этой программы уже встречалась, есть смысл повторно разобрать его. Как говорится, повторение - мать учения. Итак, все начинается с инициализации основных переменных. Затем нужно соединиться с сервером базы данных. Осуществляется это с помощью функции PHP mysql_connect(), где в качестве входных параметров задаем имя сервера базы данных (localhost), а также имя и пароль пользователя. В случае удачного соединения эта функция возвращает указатель типа source, с которым мы будем работать в дальнейшем, иначе осуществляется вывод сообщения об ошибке и выход из программы.

Следующим этапом будет выбор базы данных посредством функции mysql_select_db(). Здесь мы должны указать имя базы данных и указатель на соединение. Если база данных выбрана, то функция возвращает значение TRUE, иначе - FALSE.

После выбора базы данных можно выполнять различные действия над ней. В нашем случае требуется вывести все ее содержимое. Для этого мы создаем SQL-запрос и выполняем его с помощью функции mysql_query(). Возвращаемое ею значение запишем в переменную $result.

Работать с данными, полученными в результате выполнения запроса, можно различными способами. В нашем случае - это функция mysql_fetch_row(), которая обрабатывает ряд результата запроса и возвращает его в качестве массива, пронумерованного с нуля. Непосредственный вывод данных в окно браузера производится в цикле while. С каждым вызовом функции mysql_fetch_row() специальный указатель перемещается к следующему ряду результата запроса.