Я действительно нуждаюсь в помощи по этому вопросу, я пытался в течение нескольких дней. У меня есть база данных доступа, к которой я пытаюсь запросить через PHP — я пришел на этот форум, потому что, прочитав много постов и попробовав разные вещи, я уверен, что это какая-то проблема на сервере.
Я установил ядро базы данных Microsoft Access, как 2010, так и 2007 версии, но что бы я ни пытался, я получаю одно и то же сообщение об ошибке:
Uncaught exception 'com_exception' with message '<b>Source:</b> ADODB.Connection<br/><b>Description:</b> Provider cannot be found.
Я раскомментировал все относительные строки в php.ini (после обхода множества постов переполнения стека с той же проблемой), но безуспешно. Ниже приведен код, который я использую в моем файле php.
<?php
// Create an instance of the ADO connection object
$conn = new COM ("ADODB.Connection") or die("Cannot start ADO");
// Define the connection string and specify the database driver
$connStr = "PROVIDER=Microsoft.Ace.OLEDB.12.0;Data Source=".realpath("HS_BE.accdb").";";
// Open the connection to the database
$conn->open($connStr);
// Declare the SQL statement that will query the database
$query = "SELECT * FROM Accommodation";
// Execute the SQL statement and return records
$rs = $conn->execute($query);
$num_columns = $rs->Fields->Count();
echo $num_columns . "<br>";
for ($i=0; $i < $num_columns; $i++) {
$fld[$i] = $rs->Fields($i);
}
echo "<table>";
while (!$rs->EOF) // Carry on looping through while there are records
{
echo "<tr>";
for ($i=0; $i < $num_columns; $i++) {
echo "<td>" . $fld[$i]->value . "</td>";
}
echo "</tr>";
$rs->MoveNext(); // Move on to the next record
}
echo "</table>";
// Close the connection and recordset objects freeing up resources
$rs->Close();
$conn->Close();
$rs = null;
$conn = null;
?>
Буду очень признателен за помощь!
Задача ещё не решена.
Других решений пока нет …