Page 150 - 4636
P. 150
@ $db = mysqliconnect (' localhost', 'bookorama', 'book,oramal23 ',.
'books');
Наведена функція повертає ресурс, а не об'єкт. Цей ресурс являє собою з'єднання з базою даних, і
при використанні процедурного підходу потрібно передавати його в усі інші функції mysqli. Даний
підхід дуже схожий на роботу з файловими функціями на зразок fopen().Більшість функцій mysqli
мають і об'єктно-орієнтований, і процедурний інтерфейс. У загальному випадку, відмінності між ними
полягають у тому, що імена процедурних варіантів функцій починаються з префікса mysqli_, і їм
необхідно передавати ресурс, який отримано в результаті виклику функції mysqli_connect ().
Винятком з цього правила є підключення до бази даних, оскільки воно виконується конструктором
класу mysqli.Результат спроби підключення повинен бути перевірений, оскільки в разі невдалого
підключення решті код працювати не буде. Перевірка здійснюється з допомогою такого коду:
if (mysqli_connect_errno()) { echo 'Помилка: Не вдалося встановити
з'єднання' .'з базою даних. Повторіть спробу пізніше.';exit;}
(Цей код однаковий і для об'єктно-орієнтованої, і для процедурної версії.)
Функціяmysqliconnect errno() повертає номер помилки або 0 в разі вдалого підключення.
Зверніть увагу, що рядок, у якому робиться спроба підключення до бази даних, починається з операції
видалення помилок @. У цьому випадку можна організувати власну обробку помилкових ситуацій.
(Обробку помилок можна також реалізувати і за допомогою винятків, проте в даному прикладі було
вирішено їх не використовувати.) Слід пам'ятати, що в MySQL кількість сполук, які можуть існувати
одночасно, обмежена. Ця межа визначається параметром max connections. Його призначення (як і
спорідненого йому параметра MaxClientsдля веб-сервера Apache) - вказати сервер, щоб він відхиляв
нові запити на з’єднання, щоб не допустити повного використання ресурсів комп'ютера в години
найвищого завантаження або при аварії програмного забезпечення. Значення цих параметрів можна
змінювати, редагувати конфігураційні файли. Щоб встановити значення параметра MaxClients в
Apache, слід внести зміни у файлhttpd.conf. Налаштування параметрів max_connections в MySQL
здійснюється шляхом редагування файлу my.conf.
Вибір бази даних
Працюючи з MySQL в командній строці, необхідно вказувати використовувану базу даних:
usebooks;
Те ж саме необхідне і при Інтернет-підключенні. База даних, яка повинна використовуватися,
вказується в параметрі конструктора mysqli або функції mysqli_connect().Якщо згодом
знадобиться змінити пошукову базу даних, для цього служить функція mysqli_select_db(),
доступ до якої здійснюється наступним чином:
$db->select_db(имя_БД) або
mysqli_select db(ресурсБД, ім’я_БД)
І тут підтримуються обидві версії функції - об'єктно-орієнтована і процедурна, - причому
процедурна відрізняється лише префіксом mysqli_в імені і параметром, в якому повинен
передаватися ресурс підключення.
Виконання запиту до бази даних
Щоб виконати запит, необхідно скористатися функцією mysqliquery ().Однак спочатку цей
запит необхідно сформувати:
$query = "select * frombooks, where ".$searchtype." like"%".
$searchterm."%'";
У цьому випадку буде виконуватися пошук введених користувачем ($searchterm) в
зазначеному їм полі($searchtype). Зверніть увагу, що для перевірки відповідності ми вжили
операцію like, а не equal- при пошуку в базі даних зазвичай має сенс дещо розширити межі
пошуку.Тепер можна виконати запит:
$result = $db->query ($query);
Або, якщо ви віддаєте перевагу процедурному інтерфейсу, запит буде виглядати так:
147