Page 156 - 4636
P. 156
$num_results = $result->numRows ();//вивідкожноїповерненоїрядка
for ($i=0; $i < = $num_results; $i++) ($ row = $result-
>fetchRow(DB_FETCHMODE_ASSOC);echo "<pxstrong>" . ($i+l)." . Назва:
";еchо htmlspecialchars(stripslashes($row['title']));echo
"</strong></br>Автор: ";еchо stripslashes($row['author']);echo "<br
/>ISBN: ";еchо stripslashes($row['isbn' ]) ;echo "<br />Ціна: ";еchо
stripslashes($row['ціна']);echo ”</p>";}// від'єднаннявідбазиданих
$db->disconnect();</body></html>
Подивимося, чим цей сценарій відрізняється від використаного раніше. Для підключення до бази
даних служить рядок:$db = MDB2:: connect ($dsn);
Ця функція приймає універсальний рядок з'єднання, що містить всі параметри, необхідні для
підключення до бази даних. У цьому легко переконатися, поглянувши на формат рядка
з'єднання:$dsn = "mysqli: //". $user.":".$pass."@".$host.”/”.$db_name";Потім
за допомогою методу isError() ми перевіряємо наявність помилки при установці з'єднання, і, якщо
помилка сталася, виводимо повідомлення про помилку і здійснюємо вихід:
if (MDB2::isError($db)) { echo $db->getMessage();exit;}.
Далі, за умови, що все було виконано правильно, ми складаємо запит і виконуємо його:
$result = $db->query($query) ;
Ми можемо перевірити кількість повернутих рядків:
$num_results = $result->numRows();
Витяг кожного рядка виконується наступним чином:
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
Узагальнений метод fetchRow() дозволяє здійснювати вибір рядка в безлічі різних форматах,
параметр DB_FETCHMODE_ASSOC вказує, що рядок слід повернути у вигляді асоціативного масиву.
Після виведення повернутих рядків сценарій завершується закриттям з'єднання з базою даних:$db-
>disconnect();Як бачите, цей узагальнений приклад багато в чому схожий на перший сценарій.
Перевага використання MDB2 полягає в тому, що потрібно запам'ятати тільки один набір функцій
роботи з базою даних, і, якщо доведеться змінити СУБД, то код потребує лише мінімальних змін.
Оскільки ця лекція присвячена MySQL, для збільшення швидкості роботи і гнучкості ми будемо
користуватися вбудованими бібліотеками MySQL. Тим не менш, у реальних проектах може
знадобитися використовувати пакет MDB2, оскільки в ряді випадків подібний рівень абстракції
виявляється буквально незамінним.
КОНТРОЛЬНІ ПИТАННЯ
1. Як працює архітектура баз даних для Інтернет-доступу.
2. Основні кроки виконання Інтернет-запитів до бази даних.
3. Встановлення з'єднання.
4. Отримання інформації про доступні бази даних.
5. Вибір бази даних.
6. Виконання запиту до бази даних.
7. Отримання результатів запиту.
8. Від’єднання від бази даних.
9. Внесення нової інформації в базу даних.
10. Використання підготовлених операторів.
11. Використання інших РНР-інтерфейсів роботи з базами даних.
12. Використання узагальненого інтерфейсу бази даних: PEAR MDB2.
153