我真的需要这个问题的帮助,我已经尝试了好几天。我有一个访问数据库,我试图通过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;
?>
我非常感谢你的帮助!