Используем базу данных MySQL
Автор: Бардин Павел,
Источник: www.proger.ru
MySQL - Система Управления Базами Данных (СУБД).
Основное отличие от всех остальных СУБД это
то, что она является бесплатной. В силу того,
что MySQL бесплатна, она поддерживается очень
многими хостинг провайдерами.
Здесь я расскажу как связать PHP и MySQL т.е.
как получить данные из базы данных MySQL в PHP
скрипт.
Ну вообще-то это не так сложно. Всё, что
нужно знать:
- Хост - адрес сервера баз данных MySQL
- Имя базы данных
- Имя пользователя
- Пароль - пароль для доступа к БД
- Некоторые SQL команды
Далее я буду предполагать, что у вас уже
заведена база данных на сервере хостера или
на домашнем компьютере (MySQL можно скачать с
сайта http://mysql.com).
Итак, алгоритм такой:
- Устанавливаем соединение с сервером
- Выбираем нужную базу данных
- Делаем запрос к серверу баз данных (SQL
запрос)
- Обрабатываем результат запроса, если
это необходимо
- Закрываем соединение (отключаемся от
сервера БД)
По части PHP, чтобы работать с БД надо знать
несколько функций (полный список смотри в PHP
мануале).
- mysql_connect();
- mysql_select_db();
- mysql_query();
- mysql_fetch_array();
- mysql_close();
Это тот минимум, который позволит вам
устанавливать соединение с сервером MySQL,
выбирать базы данных и делать запросы к
серверу баз данных.
Для справки! Все PHP функции которые предназначены
для работы с базой данных MySQL имеют префикс mysql_
Я не буду рассматривать синтаксис каждой
функции. Надеюсь у вас есть PHP Manual (его можно
скачать с сайта http://php.net).
Рассмотрим эти функции в деле т.е. на
примере.
Допустим в нашей базе данных храниться
одна таблица со следующей структурой:
имя поля |
тип(длина) |
описание |
id |
целый(2) |
уникальный номер |
name |
символьный(100) |
имя |
tel |
символьный(20) |
телефон |
Таблица имеет имя: customer, а наша
база данных называется database.
Допустим, что ваши данные для подключения
к серверу MySQL Такие:
- Хост: localhost
- Имя пользователя: Guest
- Пароль: mypassword
Для начала необходимо создать нашу
таблицу customer. Напишем скрипт который
создаст в базе данных database таблицу customer.
Назовём файлик как install.php.
Файл install.php
<?php
// Данные для MySQL сервера
$DBHost = "localhost"; // Хост
$DBUser = "Guest"; // Имя пользователя
$DBPassword = "mypassword"; // Пароль
$DBName = "database"; // Имя базы данных
// Подключаемся к MySQL серверу
$Link = mysql_connect($DBHost, $DBUser, $DBPassword);
// Выбираем нашу базу данных
mysql_select_db($DBName, $Link);
// Создаём таблицу customer
// т.е. делаем SQL запрос
$Query = "CREATE TABLE customer (id INT(2) PRIMARY KEY
AUTO_INCREMENT, name VARCHAR(100), tel VARCHAR(20))";
mysql_query($Query, $Link);
// Закрываем соединение
mysql_close($Link)
?>
Функция mysql_connect() возвращает
идентификатор соединения. Этот
идентификатор необходимо указывать во всех
MySQL функциях. Можно провести аналогию с
указателем на файл (file pointer), который
используется функциями по работе с файлами.
В параметрах функции мы указали хост, имя
пользователя и пароль к базе данных.
На сервере MySQL храниться не только ваша
база данных. Сервер может обслуживать
тысячи таких баз данных. Поэтому, чтобы
получить доступ к своей базе данных,
необходимо выбрать её. Выбор базы данных
осуществляется функцией mysql_select_db(). В
параметрах указывается: имя требуемой базы
данных $DBName и идентификатор соединения $Link,
который мы получили с помощью функции
mysql_connect().
После того как мы подключились к серверу
MySQL и выбрали нашу базу данных, мы делаем SQL
запрос. Литературу по языку SQL вы найдёте на
сайте mysql.ru. В запросе
указываем, что мы хотим создать таблицу с
именем customer и со структурой приведённой
в таблице выше. Запрос к серверу MySQL
осуществляется с помощью функции mysql_query(). В
параметрах указывается сам запрос $Query и
идентификатор соединения $Link.
И, наконец, отключаемся от сервера (закрываем
соединение) функцией mysql_close(). В параметрах
указываем идентификатор того соединения,
которое нужно закрыть.
Для справки!
На самом деле скрипт может устанавливать несколько соединений с сервером MySQL.
Всё зависит от хостинга на котором вы сидите.
Если вы всё сделали правильно, то на
сервере MySQL в вашей базе данных, появится
таблица customer.
После того как мы создали таблицу, её надо
заполнить т.е. записать в нёё какие-нибудь
данные (записи). Напишем скрипт, который
будет добавлять запись в нашу таблицу.
Назовём файл скрипта как insert.php.
Файл insert.php
<?php
// Данные для MySQL сервера
$DBHost = "localhost"; // Хост
$DBUser = "Guest"; // Имя пользователя
$DBPassword = "mypassword"; // Пароль
$DBName = "database"; // Имя базы данных
// Подключаемся к MySQL серверу
$Link = mysql_connect($DBHost, $DBUser, $DBPassword);
// Выбираем нашу базу данных
mysql_select_db($DBName, $Link);
// Добавляем запись в нашу таблицу customer
// т.е. делаем SQL запрос
$Query = "INSERT INTO customer VALUES(0,'Иванов Иван Иванович',
'(095) 555-55-55')";
mysql_query($Query, $Link);
// Закрываем соединение
mysql_close($Link);
?>
Посмотрев этот скрипт вы заметете, что он
отличается от предыдущего только строкой
запроса $Query.
Теперь когда мы умеем записывать данные в
базу данных, перейдём к процедуре запроса
данных из базы MySQL. Для этого напишем скрипт
и назовём файлик select.php.
Файл select.php
<?php
// Данные для MySQL сервера
$DBHost = "localhost"; // Хост
$DBUser = "Guest"; // Имя пользователя
$DBPassword = "mypassword"; // Пароль
$DBName = "database"; // Имя базы данных
// Подключаемся к MySQL серверу
$Link = mysql_connect($DBHost, $DBUser, $DBPassword);
// Выбираем нашу базу данных
mysql_select_db($DBName, $Link);
// Добавляем запись в нашу таблицу customer
// т.е. делаем SQL запрос
$Query = "SELECT * FROM customer";
// Запрашиваем
$Result = mysql_query($Query, $Link);
while($Rows = mysql_fetch_array($Result, MYSQL_ASSOC))
{
printf("id:%d, name:%s, tel:%s",
Rows['id'],Rows['name'],Rows['tel']);
}
// Закрываем соединение
mysql_close($Link);
?>
Ну тут... всё понятно :) :) :) Естественно
изменилась строка запроса $Query, которая
теперь содержит SQL-оператор SELECT. Так же
добавился небольшой код while() { .... }. Скажу
только, что функция mysql_fetch_array() обрабатывает
результат запроса и возвращает массив
полей текущей! Внимание! текущей строки
результата.
Константа MYSQL_ASSOC указывает на то, что
функция должна вернуть ассоциативный
массив полей. После того как функция
mysql_fetch_array() обработает все строки
результата, она вернёт значение FALSE и тогда
цикл while() - не выполниться.
Тут в цикле используем функцию printf(). Она
очень похожа на эту же функцию в языке C.
Справку по функции printf() можете посмотреть в PHP мануале.
Надеюсь моя статья хоть немного помогла
вам понять связь PHP и MySQL.
Бардин Павел, 2003.
Поправки ? Комментарии ? Предложения ?
Пожалуйста на форуме.
|