Page 155 - 4636
P. 155

можна повторювати в циклі наступний виклик:$stmt->fetch();Кожне таке звернення витягує з
        результату наступний рядок і заносить її в змінні. У одному і тому ж сценарії можна використовувати
        mysqli_stmt_bind_parain(), і mysqli_stmt_bind_result().


              8.3 Використання інших РНР-інтерфейсів роботи з базами даних

              РНР підтримує бібліотеки для підключення до величезної кількості баз даних, включаючи Oracle,
        Microsoft  SQL  Server,  Postgre  SQL.  У  цілому  принцип  підключення  і  запиту  до  будь-якої  з  цих  баз
        даних  багато  в  чому  збігаються.  Імена  функцій  можуть  розрізняти,  а  різні  бази  даних  можуть
        пропонувати різні  функціональні  можливості,  але  якщо  ви  вмієте  підключити  до  MySQL,  ці  знання
        легко застосувати і відносно будь-якої іншої бази даних. Якщо необхідно використовувати базу даних,
        яка не має специфічної бібліотеки, доступної в РНР, можна вдатися до узагальнених функцій ODBC.
        ODBC (Open Database Connectivity) - це відкритий інтерфейс доступу до баз даних, який є стандартом
        підключення до баз даних. Функціональні можливості ODBC досить обмежені, однак на те є цілком
        очевидні  причини:  універсальна  сумісність  не  поєднується  з  використанням  спеціальних
        топографічних можливостей якоїсь конкретної системи. На додаток до бібліотек, що поставляється з
        РНР, також доступні такі класи абстракції баз даних як MDB2, що дозволяють використовувати одні й
        ті ж імена функцій для різних типів баз даних.
              Використання узагальненого інтерфейсу бази даних: PEAR MDB2
              Розглянемо короткий приклад використання рівня абстракції PEAR MDB2. Це один з найбільш
        широко використовуваних компонентів PEAR. Інструкції щодо інсталювання рівня абстракції MDB2
        наведено  в  додатку  А.  Для  порівняння  погляньте,  як  можна  було  б  записати  сценарій  отримання
        результатів пошуку з використанням MDB2.
              Лістинг  8.5.  results_generic.php  -  цей  сценарій  отримує  результати  пошуку  з  бази  даних
        MySQL і форматує їх для відображення
           <html><head><tit1е>Магазин "Буквофил” - Результати
           пошуку</title></head><body><S>Магазин "Буквофил" - Результати
           пошуку</S><?php//створення коротких імен змінних
           $searchtype = $_POST['searchtype' ];$searchterm =
           $_POST['searchterm'];$searchterm = trim ($searchterm);if (!$searchtype
           || !$searchterm) {echo 'Виневелипараметрипошуку. Поверніться' .'
           напопереднюсторінкутаповторітьвведення.';exit;}if (
           !get_magic_quotes_gpc()) }$searchtype =
           addslashes($searchtype);$searchterm =
           addslashes(Ssearchterm);}//налаштуваннядлявикористання PEAR MDB2
           require_once('MDB2.php');
           $user = 'bookorama';$pass = 'bookoramal23';$host = 'localhost';$db_name
           = 'books';//налаштуваннярядкауніверсальногоз'єднанняабо DSN
           $dsn = "mysqli: / /".$user.":".$pass.”@”.$host."/".$db_name";//
           з'єднаннязбазоюданих
           $db = &MDB2::connect($dsn);//перевіркапрацездатностіз'єднання,
           if (MDB2::isError($db)) {
           echo $db->getMessage();
           exit;}// виконаннязапиту$query = "select * from books, where
           ".$searchtype." like"%".$searchterm."%'";$result = $db-
           >query($query);//перевірка, щозапитвиконанийправильно, якщо
           (MDB2::isError($result)) {echo $db->getMessage ();
           exit;)// отриманнякількостіповернутихрядків

                                                            152
   150   151   152   153   154   155   156   157   158   159   160