Використання MS Access в PHP

Якщо Ви плануєте створювати свій динамічний сайт на платформі Windows, то у Вас швидше за все виникне завдання вибору СУБД для зберігання інформації (з мовою, на якому Ви будете його програмувати, судячи з усього, питань не виникає). Одним з варіантів її вирішення, може виявитися використання MS Access в якості SQL-сервера. Далі буде описано, як у скрипті, написаному на PHP, звернутися до базі даних MS Access.

На жаль, в PHP немає вбудованих засобів для роботи з цією СУБД, що, однак не виключає спільної їх роботи – для підключення до бази ми будемо використовувати ODBC.

Насамперед ми повинні створити так званий DSN Source. Для цього (розглядається варіант, коли у користувача встановлена ОС Windows 2000 Rus) в панелі управління ми повинні вибрати пункт Адміністрування, а потім Джерела даних (ODBC). Далі, у вікні вибираємо вкладку системний DSN, натискаємо кнопку додати, вибираємо драйвер MS Access і натискаємо кнопку готово. У полі введення ім'я джерела даних пишемо ім'я, за яким згодом ми зможемо звернутися до нашої бази даних, наприклад, test, потім натискаємо кнопку вибрати і вказуємо, де у нас на диску знаходиться наш файл з БД. Потім, якщо в цьому є необхідність, можемо задати ім'я користувача та пароль для доступу до БД через ODBC, натиснувши на кнопку додатково. Тепер, коли у нас є джерело даних ODBC, ми можемо скористатися функцією odbc_connect для підключення до нашої бази:


Код:
<?
$x=odbc_connect(“test”,”test”,”test”);
?>

Щоб передати запит до СУБД, ми можемо скористатися функцією odbc_exec:


Код:
<?
$ Res = odbc_exec ($ x, "create table test (f1 integer, f2 varchar (10 ))");
$ Res = odbc_exec ($ x, "insert into test (f1, f2) values (1," qwerty ")");
$ Res = odbc_exec ($ x, "insert into test (f1, f2) values (2," asdfgh ")");
?>

Якщо після виконання цього прикладу відкрити базу test в MS Access, то ми виявимо, що там з'явилася нова таблиця test з полями f1 і f2 цілочисельного і строкового типів відповідно; в таблиці будуть два записи з даними, які були вказані в запиті.

На жаль, не всі функції для роботи з ODBC коректно працюють з MS Access, наприклад, це функції odbc_num_rows і odbc_fetch_array. Так, в тій версії PHP, що встановлена на моєму комп'ютері, PHP взагалі видає повідомлення, що функція odbc_fetch_array йому не відома. Але ці проблеми вирішуються, якщо описати дві наступні функції і використовувати їх замість раніше згадуваних:


Код:
<?
function xodbc_num_rows($sql_id, $CurrRow = 0)
{
$NumRecords = 0;
odbc_fetch_row($sql_id, 0);
while (odbc_fetch_row($sql_id))
{
  $NumRecords++;
}
odbc_fetch_row($sql_id, $CurrRow);
return $NumRecords;
}
function xodbc_fetch_array($result, $rownumber=-1) {
if ($rownumber < 0) {
   odbc_fetch_into($result, &$rs);
  } else {
  odbc_fetch_into($result, &$rs, $rownumber);
}
foreach ($rs as $key => $value) {
   $rs_assoc[odbc_field_name($result, $key+1)] = $value;
}
return $rs_assoc;
}

$res=odbc_exec($x,”select * from test”);
$cnt=xodbc_num_rows($res);
?>
<table class=borderall cellspacing=0 cellpadding=4>
<tr> <td> f1 </ td> <td> f2 </ td> </ tr>
<?
for ($i=0;$i<$cnt;$i++) {
  $row=xodbc_fetch_array($res,$i+1);
echo "<tr> <td>". $ row ["f1 "]."</ td> <td>". $ row ["f2 "]."</ td> </ tr>";
}
?>
</table>


Результат виконання цього прикладу наведено нижче:












f1 f2
1 qwerty
2 asdfgh

Таким чином, тепер, якщо у Вас виникне завдання підключення до бази MS Access з PHP, Ви зможете сміливо її вирішити в найкоротші терміни.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*