Page 151 - 4636
P. 151
$result = mysqli_query($db, $query);
Ви передаєте запит, який необхідно виконати, і, враз і процедурного інтерфейсу, зв'язок з базою
даних (у цьому прикладі - $db).Об'єктно-орієнтована версія повертає об'єкт результату, а процедурна
версія – ресурс результату (як при виклику функції підключення до бази даних). У будь-якому випадку
повертається значення зберігається в змінної ($result) для подальшого використання. У випадку
помилки функція повертає значення false.
Отримання результатів запиту
Існує безліч функцій, які дозволяють різними способами вилучати потрібні фрагменти з об'єкта
або ідентифікатора результату. Об'єкт або ідентифікатор результату - це ключ доступу до повернутих
запитом рядків. У нашому прикладі ми підрахували кількість повернутих запитом рядків і
скористалися функцією mysqli_fetch_assoc().У разі об'єктно-орієнтованого підходу кількість
повернутих рядків зберігається в елементі num_rows об'єкта результату; звернутися до нього можна
таким чином:
$num_results = $result->num_rows;
При процедурному підході для отримання кількості повернутих термініввикористується функція
mysqli num rows(), якій необхідно передати ідентифікатор результату:
$num_results - mysqli_num_rows (Sresult) ;
Ця інформація потрібна, якщо планується обробляти або відображати результати, оскільки
дозволяє організувати цикл з них:
for (Si = 0; $i<num_results; $i++) {//Обробка результатів}
В кожній ітерації цього циклу відбувається виклик $result->fetch_assoc() (або
mysqlifetchassoc ()). При відсутності повернутих рядків цикл не буде виконуватись. Саме ця
функція витягує кожен рядок з результуючого набору і повертає її у вигляді масиву, в якому кожен
ключ є ім'ям атрибута, а кожне значення - відповідним значенням:
$row = $result->fetch_assoc();
Або з використанням процедурного підходу:
$row = mysqli_fetch_assoc($result);
Маючи масив $row, можна перебрати всі поля та належним чином відобразити кожне з них:
echo "<br />ISBN:ехо stripslashes($row['isbn']);
Як згадувалося раніше, stripslashes() викликається для того, щоб “очистити” значення,
перш ніж відображати його користувачеві.Існує кілька варіантів отримання результату з
ідентифікатора результату. Замість масиву з іменованими ключами можна скористатися нумерованим
масивом, застосувавшиmysqli_fetch_row ():
$row = $result->fetchrow();
або, у разі процедурного підходу:
Srow = mysqli_fetch_row($result);
Значення атрибутів зберігаються в значеннях $row[0], $row[l] і так далі. (Функція
mysqli_fetch_array() дозволяє вибрати рядок таблиці у вигляді масиву обох типів.)За
допомогою функції mysqli_fetch_object() можна також вибрати рядок для розміщення
всередину об'єкта:
$row = $result->fetch_object();або так:
$row = mysqli_fetch_object($result);
Після цього доступ до кожного атрибуту можна отримати з допомогою $row->title, $row-
>author і т.д.
Від'єднання від бази даних
Звільнення результуючого набору виконується таким чином:
$result->free();або
148