2013-03-14 3 views
0

У меня есть сайт, размещенный на bluehost.com (Linux Server), у меня есть случай использования, что я должен экспортировать некоторые конкретные Экспорт данных в MS Access File,Connect MS Access DB В Linux с помощью PHP

Я следующий код Подключение с MS Access Файл:

$dbh = null;  
try{ 
    $dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=$file_path", $user_name, $password, $db_info); 
}catch(PDOException $e){ 
    echo $e->getMessage();  
} 
return $dbh; 

Но когда я запускаю приведенный выше код на хостинг-сервере, чем я получил ошибку SQLSTATE [IM002] SQLDriverConnect: 0 [UnixODBC] [Driver Manager] источник данных не найден, и не указан по умолчанию

Позже после некоторые поиска я изменил код подключения БД к

try{ 
    $conn = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$file_path", ACCESS_DB_USERNAME, ACCESS_DB_PASSWORD); 
}catch(Exception $ex){ 
    echo $ex->getMessage(); 
} 

в коде выше я не получил каких-либо исключений, но $ сопп является NULL, как фрагмент кода работает отлично на моей локальной машине Windows,

Можете ли вы люди Помогите мне в решении проблемы? я хочу установить соединение и хочу запустить инструкцию INSERT INTO в MS Access DB.

+0

В сообщении об ошибке указано, что вам не хватает Драйверы для этого типа базы данных –

+0

У вашего хоста нет установленного драйвера ODBC с именем «Microsoft Access Driver (* .mdb)». Если они действительно предоставляют такую ​​услугу, они должны иметь документацию где-нибудь с правильными именами драйверов. –

+0

, но когда я использую odbc_connect, я не получил никаких ошибок, предполагая, что я что-то делаю неправильно, – shary

ответ

1

docs for odbc_connect сказать, что он возвращает одну из двух вещей.

  1. Связь ODBC.
  2. FALSE по ошибке.

Ваш код должен искать FALSE, а не исключение.

В документах также есть примеры нескольких различных видов соединений. Но я думаю, что шансы, что Bluehost устанавливает драйверы Microsoft Access на всех своих серверах Linux, меньше нуля.

+0

да, я думаю, я попытался с jdbc, но не успел, попробуем изменить наш план и получить root-доступ для установки Linux-драйвера ODBC. ... Спасибо за ваш ответ. – shary

+0

Привет, Майк, я просто позвонил в поддержку Blue Host, они сказали, что мне нужен выделенный IP-адрес для использования драйвера ODBC, они установили его на всех своих серверах в Port 1433, это имеет для вас какой-то смысл? оценят ваш быстрый ответ. так как я понятия не имею, где мы указываем PORT при подключении. – shary

+0

Да, это * вид * имеет смысл. Драйвер ODBC должен знать, как найти целевую базу данных. На Bluehost сервер базы данных, вероятно, отличается от компьютера, чем сервер. И они, вероятно, хотят, чтобы гибкость позволяла создавать новый (возможно, виртуальный) сервер базы данных, изменять IP-адрес и все просто работать. Я почти уверен, что есть технология, которая может сделать это без вмешательства человека. Это не значит, что есть версия с открытым исходным кодом. Если у вас есть проблемы, посмотрите http://www.connectionstrings.com/ –

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

  • Нет связанных вопросов^_^