Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mysql__ukr_54_22.12.10.doc
Скачиваний:
12
Добавлен:
09.11.2018
Размер:
667.65 Кб
Скачать

5.1 Рнр функції для роботи з MySql

Однією з найважливіших особливостей РНР є зручність взаємодії з базами даними. Зокрема, для взаємодії з MySQL нам будуть потрібні такі функції:

mysql_connect(string hostname, string username, string password);

Створити з'єднання з MySQL.

Параметри:

Hostname - ім'я хоста, на якому перебуває база даних.

Username - ім'я користувача.

Password - пароль користувача.

Функція повертає параметр типу int, який більше 0, якщо з'єднання відбулося успішно, і дорівнює 0 у протилежному випадку.

mysql_select_db(string database_name, int link_identifier);

Вибрати базу даних для роботи.

Параметри:

Database_name - ім'я бази даних.

link_identifier - ідентифікатор з'єднання, що отримано у функції mysql_connect. (параметр необов'язковий, якщо він не вказується, то використовується ID від останнього виклику mysql_connect).

Функція повертає значення true або false

mysql_query(string query, int link_identifier);

Функція виконує запит до бази даних.

Параметри:

query - рядок, що містить запит

link_identifier - див. попередню функцію.

Функція повертає ID результату або 0, якщо сталася помилка.

mysql_result(int result, int i, column);

Функція повертає значення поля в стовпці column і в рядку i.

mysql_fetch_row ($result);

Функція дозволяє одержати доступ до даних після виконання запиту SELECT.

Параметри:

$result результат виконання mysql_query()

Функція повертає набір значень у вигляді одновимірного масиву, що являє собою один рядок із двовимірного масиву $result. Перший виклик функції повертає перший рядок двовимірного масиву $result, а кожний наступний – чергову. Як індекси однвимірного масиву використовуються порядкові номери елементів. Нумерація починається з нуля.

mysql_fetch_array ( $result)

Те ж, що й попередня функція, тільки як індекси масиву використовуються імена полів таблиці.

mysql_close(int link_identifier);

Функція закриває з'єднання з MySQL.

Параметри:

link_identifier - див. вище.

Функція повертає значення true або false.

mysql_num_rows ( $result)

Параметри:

$result результат виконання mysql_query()

Функція повертає кількість рядків двовимірного масиву $result.

Розглянемо тепер декілька прикладів скриптів, що взаємодіють з MySQL. Скрипти будуть звертатися до бази даних library, розглянутої в попередніх розділах. Створимо новий хост test.ua. Для цього створимо папку test.ua за адресою c:/webservers/home/ (якщо Денвер установлений у кореневому каталозі диска С). Потім створюємо папку www у папці test.ua і надалі будемо складати в цю папку всі файли прикладів.

5.2 Виведення даних з таблиці

Наберемо в блокноті текст скрипта й збережемо його за адресою

c:/webservers/home/test.ua/www:

<html>

<body>

<h2> Список читачів </h2>

<?php

$db = mysql_connect("localhost", "root");

mysql_select_db("library",$db);

$result = mysql_query("SELECT * FROM reader",$db);

while ($myrow = mysql_fetch_row($result))

{echo $myrow[1],$myrow[2].'<br>';}

?>

</body>

</html>

Далі, запускаємо Денвер і набираємо в адресному рядку браузера http://test.ua /readers.php. У результаті у вікні браузера одержимо список читачів

Список читачів

Волков І. вул. Леніна 47

Жуков І. вул. Гоголя 21

Зайцев О. вул. Лісова 28

Медведєв П. вул. Задніпровська 45

Козлов Н. вул. Будівельників 56

Биков Р. вул. Гоголя 58

Тарганов Г. вул. Дзержинського 81

Клопов Є. вул. Воронезька 64

Комаров К. вул. Ювілейна 68

Блохін А. вул. Леніна 55

Розглянемо докладніше команди скрипта. У рядку

$db = mysql_connect("localhost", "root");

відбувається підключення до сервера MySQL. Параметр localhost свідчить про те, що сервер MySQL установлений на тому ж комп'ютері, що й Webserver. Параметр root відповідає користувачеві із правами адміністратора, пароль у цьому випадку не потрібний. Надалі ім'я користувача й пароль треба змінити. Змінна $db – це ідентифікатор з'єднання.

У рядку

mysql_select_db("library",$db);

вибирається база даних library.

У рядку

$result = mysql_query("SELECT * FROM reader",$db);

виконується запит на вибірку всіх полів з таблиці reader. Змінна $result набуває результатів запиту у формі двовимірного масиву. Далі відкривається цикл і функція mysql_fetch_row($result) по черзі вибирає рядки з $result і формує щоразу одновимірний масив $myrow.

У тілі циклу відбувається вивід першого й другого елементів масиву $myrow, що відповідає полям Прізвище й Адреса таблиці reader. Цикл триває доти, поки не буде прочитаний останній запис із $result.

Замість функції mysql_fetch_row() можна використовувати функцію mysql_fetch_array(). У цьому випадку у якості індексів масиву $myrow використовуються імена полів і цикл матиме такий вигляд

while ($myrow = mysql_fetch_array($result))

{echo $myrow['fio'],$myrow['addres'].'<br>';}

Перепишемо тепер скрипт таким чином, щоб дані виводилися в таблицю. Зверніть увагу на те, як теги HTML інтегровані в PHP код.

<html>

<body>

<h2> Список читачів </h2>

<?php

$db = mysql_connect("localhost", "root") or die("Неможливо з'єднатися із сервером");

mysql_select_db("library",$db)or die ("Неможливо вибрати базу даних");

$result = mysql_query("SELECT * FROM reader",$db)or die("Запит не виконаний");

echo "<table border=1>\n";

echo "<tr><td>Прізвище</td><td>Адреса</tr>\n";

while ($myrow = mysql_fetch_row($result))

{

printf("<tr><td>%s</td><td>%s</td></tr>\n", $myrow[1], $myrow[2]);

}

echo "</table>\n";

?>

</body>

</html>

У скрипт також додані повідомлення, що сигналізують про збої на певних етапах роботи. Крім того, замість команди висновку echo використовується більш гнучкий оператор висновку printf(). Результат роботи скрипта представлений нижче.

Список читачів

Прізвище

Адреса

Волков І.

вул. Леніна 47

Жуков І.

вул. Гоголя 21

Зайцев О.

вул. Лісова 28

Медведєв П.

вул. Задніпровська 45

Козлов Н.

вул. Будівельників 56

Биков Р.

вул. Гоголя 58

Тарганов Г.

вул. Дзержинського 81

Клопов Є.

вул. Воронезька 64

Комаров К.

вул. Ювілейна 68

Блохін А.

вул. Леніна 55

Наступні приклади демонструють взаємодію з базами даних через HTML форми.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]