Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab3-PHP.doc
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
227.33 Кб
Скачать

Робота з базами даних

Мова РНР підтримує різні системи баз даних, що є однією з істотних її переваг. РНР забезпечує підтримку наступних баз даних.

Adabas D

InterBase

Solid

Dbase

mSQL

Sybase

Empress

MySQL

Velocis

FilePro

Oracle

Unix DBM

Informix

PostgreSQL

Microsoft SQL Server

ODBC

Для кожної з підтримуваних баз даних в РНР існує відповідний програмний інтерфейс API, що забезпечує зв'язок з конкретною системою. Незважаючи на те, що для кожної бази даних існує свій програмний інтерфейс, існує типова модель роботи з базою даних. Наведемо псевдокод, що ілюструє загальну процедуру пошуку і вибору даних з деякої бази.

<?php

Підключення до СУБД()

Інструкції SQL()

Відключення від СУБД()

?>

Розглянемо приклад взаємодії РНР і MySQL.

Доступ до бази даних MySql з використанням мови рнр

Функція РНР mysql_connect дозволяє сценарію підключитися до сервера MySQL. Ця функція має три параметри, і всі вони є необов'язковими. Перший параметр задає вузол, на якому знаходиться сервер MySQL. За замовчуванням значенням цього параметра є localhost (ім'я комп'ютера, на якому виконується сценарій). Другий параметр задає ім'я користувача MySQL. За замовчуванням таким іменем є ім'я користувача, у контексті якого був запущений процес РНР. Третій параметр задає пароль для доступу до бази даних. За замовчуванням використовується порожній пароль. Наприклад,

$db = mysql_connect();

Звичайно операція підключення до бази даних може завершитися невдачею. В цьому випадку повертається значення false (а не посилання на базу даних). З'єднання з базою даних можна розірвати за допомогою функції mysql_close.

При запуску сервера MySQL з командного рядка потрібно вибрати поточну базу даних, з якою буде пов’язаний фокус. Це ж необхідно здійснити і при взаємодії з MySQL зі сценарію РНР. Для вибору бази даних, з якою буде здійснюватися взаємодія, призначена функція mysql_select_db.

mysql_select_db(“cars”);

Серверу MySQL запити передаються за допомогою функції mysql_query. Наприклад,

$query = “SELECT * from Slavuta”

$result = mysql_query($query);

Функція mysql_query повертає значення, які використовуються для оцінки результатів, отриманих при виконанні запиту SQL. У більшості випадків необхідно визначити кількість рядків результуючих даних. Це можна здійснити за допомогою функції mysql_num_rows, параметром якої є результат виконання функції mysql_query. Наприклад,

$num_rows = mysql_num_rows($result);

Окремі рядки набору даних, отриманого при виконанні SQL-запиту, можна одержати різними способами. Наприклад, можна скористатися функцією mysql_fetch_array, що повертає хеш-код наступного рядка. Якщо записів більше немає, то повертається значення false. Потім значення полів можуть бути отримані шляхом спільного використання імені стовпця таблиці і хеш-кода поточного рядка результуючої множини. Наприклад, якщо в результуючому наборі даних містяться поля Salon і Salon_ID, то всю отриману інформацію можна представити у виді коду HTML у такий спосіб.

$num_rows = mysql_num_rows($result);

for($row_num = 0; $row_num < $num_rows; $row_num++)

{

$row = mysql_fetch_array($result);

print “<p> Result row number”.($row_num+1).“. Salon_ID: ”;

print htmlspecialchars($row[“Salon_ID”]);

print “ Salon: ”;

print htmlspecialchars($row[“Salon”]);

print “</p>”;

}

Для отримання записів з результуючого набору даних можна використовувати функцію mysql_fetch_row. Різниця полягає в тому, що функція mysql_fetch_array повертає змішаний асоціативний масив, елементи якого упорядковані як за іменами полів (строковим ключам), так і за числовим індексом, а функція mysql_fetch_row повертає нумерований масив.

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