Microsoft Access и РНР
Популярность СУБД Microsoft Access(http://www.microsoft.com/office/access) отчасти объясняется ее удобным графическим интерфейсом. Помимо использования Access в качестве самостоятельной СУБД, вы можете использовать ее графический интерфейс для организации работы с другими базами данных — например, MySQL или Microsoft SQL Server.
Чтобы продемонстрировать поддержку ODBC в РНР, я опишу процесс подключения к базам данных Microsoft Access на РНР. Делается это на удивление просто, но благодаря популярности Microsoft Access это станет полезным дополнением в вашем творческом арсенале. Я опишу этот процесс шаг за шагом:
- Создайте базу данных Access. Предполагается, что вы уже умеете это делать, а если не умеете, но все равно хотите проследить за выполнением этого примера, — воспользуйтесь услугами программы-мастера. Я создал стандартную базу данных для хранения контактных данных при помощи мастера. Обязательно создайте в таблице несколько записей и запомните имя таблицы, оно нам вскоре понадобится!
- Сохраните базу данных на своем компьютере.
- На следующем шаге мы организуем доступ к базе Access средствами ODBC. Выполните команду Пуск > Настройка > Панель управления(Start > Settings > Control Panel). Найдите на панели управления значок Источники данных ODBC(32)(ODBC Data Sources(32 bit)). При помощи этого значка запускается Администратор ODBC, предназначенный для настройки различных драйверов и источников данных в вашей системе. Запустите программу, дважды щелкнув на этом значке. Окно Администратора по умолчанию открывается на вкладке Пользовательский DSN(User DSN). На этой вкладке перечисляются источники данных-, которые относятся к конкретному пользователю и могут использоваться только на этом компьютере. В данном примере будет использоваться именно такой источник данных.
- Нажмите кнопку Добавить. (Add. ) в правой части окна. Открывается новое окно для выбора драйвера, предназначенного для работы с новым источником. Выберите строку Microsoft Access Driver(*.mdb) и нажмите кнопку Finish(Готово).
- На экране появляется новое окно Установка драйвера ODBC для Microsoft Access(ODBC Microsoft Access Setup). Найдите в форме текстовое поле Имя источника данных(Data Source Name) и введите в нем имя созданной вами базы данных Access. При желании можете ввести описание в текстовом поле, расположенном непосредственно под полем Имя источника данных.
- Нажмите кнопку Выбрать. (Select. ) — появляется окно в стиле Проводника Windows. В нем вам предлагается найти базу данных, доступ к которой будет осуществляться средствами ODBC.
- Найдите в дереве каталогов свою базу данных и дважды щелкните на ней. Вы снова возвращаетесь к окну Установка драйвера ODBC для Microsoft Access. Путь к выбранной базе данных отображается над кнопкой Выбрать. Нажмите кнопку ОК.
- Готово! Теперь вы можете работать с базой данных Access средствами ODBC.
Все, что вам остается сделать — создать сценарий, в котором вы будете работать с базой данных через ODBC. В приведенном ниже сценарии общие функции ODBC(см. выше) будут использоваться для вывода всей информации из таблицы контактов, созданной при помощи мастера Access. Однако перед рассмотрением сценария желательно знать, как таблица Contacts выглядит в Access(рис. 11.3).
Рис. 11.3. Таблица Contacts в MS Access
Теперь вы знаете, какая информация будет извлекаться из базы данных, и мы можем перейти к сценарию. Если вы забыли, что делает та или иная функция, обращайтесь к описанию в начале этой главы. Результаты работы листинга 11.7 представлены на рис. 11.4.
Листинг 11.7. Применение функций ODBC для работы с MS Access
Не правда ли, все просто? А самое замечательное — то, что этот сценарий полностью совместим с любой другой СУБД с поддержкой ODBC. Для тренировки попробуйте повторить все описанные действия для другой СУБД, запустите сценарий — и вы получите те же результаты, которые изображены на рис. 11.4.
Рис. 11.4. Содержимое таблицы Contacts в web-браузере
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
Copyright © 2005-2016 Project.Net.Ru
Соединение access с php
Если Вы планируете создавать свой динамический сайт на платформе Windows, то у Вас скорее всего возникнет задача выбора СУБД для хранения информации (с языком, на котором Вы будете его программировать, судя по всему, вопросов не возникает). Одним из вариантов её решения, может оказаться использование MS Access в качестве SQL-сервера. Далее будет описано, как в скрипте, написанном на PHP, обратиться к базе данных MS Access.
К сожалению, в PHP нет встроенных средств для работы с этой СУБД, что, однако не исключает совместной их работы — для подключения к базе мы будем использовать ODBC.
Первым делом мы должны создать так называемый DSN Source. Для этого (рассматривается вариант, когда у пользователя установлена ОС Windows 2000 Rus) в панели управления мы должны выбрать пункт Администрирование, а затем Источники данных (ODBC). Далее, в появившемся окне (рис.1)
выбираем вкладку системный DSN, нажимаем кнопку добавить, выбираем драйвер MS Access (рис.2)
рис. 2
и нажимаем кнопку готово. В поле ввода имя источника данных пишем имя, по которому впоследствии мы сможем обратиться к нашей базе данных, например, test, затем нажимаем кнопку выбрать и указываем, где у нас на диске находится наш файл с БД (рис. 3)
Затем, если в этом есть необходимость, можем задать имя пользователя и пароль для доступа к БД через ODBC, нажав на кнопку дополнительно (рис. 4)
Теперь, когда у нас есть источник данных ODBC, мы можем воспользоваться функцией odbc_connect для подключения к нашей базе:
$x=odbc_connect("test","test","test"); ?>
$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 ему не известна. Но эти проблемы решаются, если описать две следующие функции и использовать их вместо ранее упоминавшихся:
$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); ?>
f1 | f2 |
'.$row['f1'].' | '.$row['f2'].' |
Результат выполнения этого примера приведён ниже:
Таким образом, теперь, если у Вас возникнет задача подключения к базе MS Access из PHP, Вы смело сможете её решить в кратчайшие сроки.
Работа с MS Access в PHP
Если Вы планируете создавать свой динамический сайт на платформе Windows, то у Вас скорее всего возникнет задача выбора СУБД для хранения информации (с языком, на котором Вы будете его программировать, судя по всему, вопросов не возникает). Одним из вариантов её решения, может оказаться использование MS Access в качестве SQL-сервера. Далее будет описано, как в скрипте, написанном на PHP, обратиться к базе данных MS Access.
PHP через ODBC
К сожалению, в PHP нет встроенных средств для работы с этой СУБД, что, однако не исключает совместной их работы — для подключения к базе мы будем использовать ODBC.
Первым делом мы должны создать так называемый DSN Source. Для этого (рассматривается вариант, когда у пользователя установлена ОС Windows 2000 Rus) в панели управления мы должны выбрать пункт Администрирование, а затем Источники данных (ODBC). Далее, в появившемся окне (рис.1)
выбираем вкладку системный DSN, нажимаем кнопку добавить, выбираем драйвер MS Access (рис.2)
и нажимаем кнопку готово. В поле ввода имя источника данных пишем имя, по которому впоследствии мы сможем обратиться к нашей базе данных, например, test, затем нажимаем кнопку выбрать и указываем, где у нас на диске находится наш файл с БД (рис. 3)
Затем, если в этом есть необходимость, можем задать имя пользователя и пароль для доступа к БД через ODBC, нажав на кнопку дополнительно (рис. 4)
Теперь, когда у нас есть источник данных ODBC, мы можем воспользоваться функцией odbc_connect для подключения к нашей базе:
Чтобы передать запрос в СУБД, мы можем воспользоваться функцией odbc_exec:
Если после выполнения этого примера открыть базу test в MS Access, то мы обнаружим, что там появилась новая таблица test с полями f1 и f2 целочисленного и строкового типов соответственно; в таблице будут две записи с данными, которые были указаны в запросе.
К сожалению, не все функции для работы с ODBC корректно работают с MS Access, например, это функции odbc_num_rows и odbc_fetch_array. Так, в той версии PHP, что установлена на моём компьютере, PHP вообще выдаёт сообщение, что функция odbc_fetch_array ему не известна. Но эти проблемы решаются, если описать две следующие функции и использовать их вместо ранее упоминавшихся:
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); ?>
f1 | f2 | '.$row['f1'].' | '.$row['f2'].' | '; > ?>
Результат выполнения этого примера приведён ниже:
Таким образом, теперь, если у Вас возникнет задача подключения к базе MS Access из PHP, Вы смело сможете её решить в кратчайшие сроки.