Как получить данные для веб-страницы из базы данных MS Access с паролем - PullRequest
2 голосов
/ 07 октября 2011

У меня есть файл базы данных MS Access, который я хочу скопировать в MySQL для показа на веб-странице, проблема в том, что база данных имеет пароль. То, что я хочу сделать, это загрузить файл на сервер, а затем либо удалить пароль, либо открыть его, используя пароль, чтобы я мог затем скопировать его в MySQL. Пароль известен и не может быть удален у источника. Я хотел бы сделать это с PHP, если это возможно.

Это повторяющееся событие, максимум два раза в день.

После того, как я связался с моим хостингом, единственный способ использовать odbc - перейти на выделенный хостинг в 10 раз дороже моего текущего хостинга. Похоже, что это не пойдет, если я не могу получить данные другим способом.

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Вот DSN - Пример кода подключения меньше:

<?php
$db_connection = new COM("ADODB.Connection");

$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("../databases/database.mdb") ." ;DefaultDir=". realpath("../databases");
$db_connection->open($db_connstr);
$rs = $db_connection->execute("SELECT * FROM Table");
$rs_fld0 = $rs->Fields(0);
$rs_fld1 = $rs->Fields(1);
while (!$rs->EOF) {
  print "$rs_fld0->value $rs_fld1->value\n";
  $rs->MoveNext(); /* updates fields! */
}
$rs->Close();
$db_connection->Close();
?> 
1 голос
/ 07 октября 2011

К открыть это, пароль должен быть передан в строке соединения ... Для PHP, использующего odbc_connect, синтаксис доступен здесь .Поскольку вы говорите, что пароль известен, это должно сработать.

Чтобы полностью удалить его, вам нужно просто открыть его в Access и сохранить копию без пароля.Я не уверен, что это можно легко автоматизировать.Если вам нужен доступ к данным и их повторная передача, я бы сказал, что придерживайтесь пароля в строке подключения.

Пример из статьи, ссылающейся на:

<?php
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver - allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...