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

#php #mysql #database #ms-access

#php #mysql #База данных #ms-access

Вопрос:

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

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

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

Комментарии:

1. одноразовый ход? или повторяющиеся усилия?

2. Файл базы данных создается на наборе электронных весов, я хочу загрузить файл непосредственно с весов через микроконтроллер на сервер.

3. Сервер основан на Linux. Идея не удалась?

Ответ №1:

Чтобы открыть ее, пароль должен быть передан в строке подключения… Для 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" , '', '');
?> 
  

Комментарии:

1. Спасибо, к сожалению, odbc_connect() в настоящее время не поддерживается на моем хостинге. Есть ли какие-то альтернативы?

2. code.activestate.com/recipes /… — или просто погуглите «PHP Access Connection String» для других.

Ответ №2:

Вот пример кода подключения без 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->valuen";
  $rs->MoveNext(); /* updates fields! */
}
$rs->Close();
$db_connection->Close();
?>