2016-09-12 9 views
0

Я работаю над подключением ODBC, но мне нужна помощь в правильной настройке. Я также надеюсь, что смогу получить некоторую помощь в написании кода PHP, чтобы проверить, работает ли соединение с БД.ODBC для установки MS Access

На машине Windows Server 2008 R2 я просматриваю C: \ Windows \ SysWOW64 и запускаю odbcad32. (Здесь я начинаю запутываться ... большинство страниц, на которые я смотрел, дают для этого довольно основную информацию.) БД - это файл MS Access. Какую вкладку выбрать ... User DSN ... System DSN ... File DSN?

Как только я выберу правильную вкладку, могу ли я правильно ввести что-либо для имени источника данных? (Например, даже если файл является «it.accdb», могу ли я указать имя источника данных «Сотрудники»? «Employees.accdb»? Или он должен соответствовать фактическому имени файла?

Наконец, что будет ли PHP-код подключаться к БД? В настоящее время БД находится в D: \ Temp \ IT.accdb. У меня сейчас ODBC настроен на вкладке System DSN с именем источника данных «Сотрудники» и указывает на . DB Я попытался следующий код:.

<?php 
$dbName = "Employees"; 

if (!file_exists($dbName)) { 
    die("Could not find database file."); 
} 
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ=$dbName; Uid=; Pwd=;"); 

Я попытался изменить $ DbName быть множество вещей, но все, что я пытался результаты не найти файл базы данных

Может сом помогите мне с этим?

+0

Является ли PHP-скрипт запущенным на том же компьютере, что и база данных? – ChristianF

+0

Живая база данных находится на удаленном виртуальном сервере (Windows Server 2008 R2). Я создал тестовую базу данных, в которой я переехал в разные места, чтобы получить успешное соединение. Я предпочел бы оставить базу данных в этом текущем местоположении, если это вообще возможно. Но я переведу живую базу данных в локальное место, если я не смогу подключиться к ней удаленно. – egoche

+0

Пожалуйста, отредактируйте свой вопрос, чтобы уточнить: будет ли ваш PHP-код работать на том же компьютере Windows Server 2008 R2, где находится файл базы данных Access? Если нет, будет ли он работать в другом окне Windows?Если да, будет ли PHP-код работать как 32-разрядный процесс или 64-разрядный процесс? Кажется, что файл базы данных является .accdb; это верно? –

ответ

0

Существует два способа доступа к источнику данных ODBC по сети. Вы можете либо подключить сетевой диск, содержащий базу данных, и предоставить пользователю доступ к нему для чтения/записи (не рекомендую я); Или используйте бригаду ODBC, например OpenLink.

Если вы хотите переместить БД на тот же сервер, что и код PHP, то я думаю, что this sitepoint guide должен помочь.

Последний рекомендуемый и простой способ, чтобы обойти это. Для этого вам необходимо настроить источник ODBC как «System-DSN» на сервере, содержащем базу данных, называя его, как вам нравится. «Системную базу данных» следует проверить на «none», и я рекомендую настроить имя пользователя и пароль. Затем установите брокер запросов ODBC, указывающий на это DSN.
На стороне клиента вы настроили мост клиента ODBC, настройте его для использования DSN на пульте дистанционного управления. Тогда все, что вам нужно сделать, это создать DSN-строку, как это в PHP:

$dsn = "odbc:dsn_name"; 

Вот так.

Обратите внимание, что брокер делает небольшую помощь в настройке, но пока вы читаете руководства, это довольно прямолинейно. OpenLink также имеет пробную версию, так что вы можете выяснить, будет ли она работать для вас. Чтобы выяснить, какие части вам нужны, у них также есть Software selection wizard.

Есть также другие провайдеры для такого программного обеспечения, но у меня есть только опыт работы с OpenLink.

+0

Если эти два варианта доступны для этого процесса, я больше склонен переместить базу данных на веб-сервер, на котором установлен PHP. (Попытка избежать запроса денег для небольшого проекта.) Итак ... если у меня есть база данных в той же системе, что и сервер web/PHP, правильно ли я думаю, что мне все еще понадобится установка драйвера ODBC? Если это так, будет ли это также установлено как «System-DSN»? – egoche

+0

Я добавил второй абзац к моему ответу со ссылкой на то, как вы можете настроить его на том же сервере. Есть также некоторые open-source и/или бесплатные драйверы ODBC, но из-за требований, которые у нас были, я не смотрел на них. Поскольку они не поддержали наш прецедент. – ChristianF

+0

Спасибо, христианин. Это одна из многих страниц, на которые я смотрел во время этого процесса ... Я возьму другой, поближе посмотрю на него. Еще один вопрос, хотя ... при создании соединения ODBC вам нужно указать имя источника данных, которое, как я могу определить, не обязательно должно быть тем же именем, что и фактический файл. (Например, имя файла может быть «One.accdb», но имя источника данных может быть «Два». Мой вопрос: что бы вы использовали для кода PHP? »$ Dsn =« odbc: one.accdb »' или '$ dsn = "odbc: two"'? – egoche

Смежные вопросы