使用PHP连接到MSAccess数据库

时间:2016-11-18 00:37:41

标签: php ms-access pdo odbc

过去几天我一直试图使用我的PHP应用程序(5.4.32)连接到MSAccess数据库(2000)而没有运气。 我已经探讨了我在网上找到的一些例子,虽然看起来PHP脚本正在查找数据库,但是一旦发出连接请求,它似乎就会停止执行。

我的PHP信息可以在这里找到:http://www.ve3gop.com/php_info.php

关键组件(PDO,pdo_mysql和PDO_ODBC)似乎已启用。

我试过3个例子: 示例1发送连接请求后停止。

<?php
$dbName = $_SERVER["SYSTEM_ROOT"] . "HockeyPool.mdb";
if (!file_exists($dbName)) {
    die("Could not find database file.");
}
else
{
echo "Using " . $dbName . " database.";
}

$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");

echo "Connection Request Sent";

$sql  = "SELECT * FROM PoolTeams";
$result = $db->query($sql);
while ($row = $result->fetch()) {
    $teamIdent        = $row["ID"];
    $teamName         = $row["TeamName"];
}
?>

示例2同样的事情......发送请求后停止。

<?php
$bits = 8 * PHP_INT_SIZE;
echo "(Info: This script is running as $bits-bit.)\r\n\r\n";
$dbName = "HockeyPool.mdb";

$dbh = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=HockeyPool.mdb");

echo "Request Sent";
$dbh = new PDO($connStr);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM PoolTeams";
$sth = $dbh->prepare($sql);
$sth->execute();

while ($row = $sth->fetch()) {
    echo $row['PoolTeamName'] . "\r\n";
}
?>

最后,示例3根本不起作用。

<?php

$conn = new COM('ADODB.Connection');
$dbName = $_SERVER["SERVER_ROOT"] . "HockeyPool.mdb";
echo $dbName;

 if (!file_exists($dbName)) {
    die("Could not find database file.");
 }

conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName");

echo $dbName;
$conn->close;

?>

有谁能请我指出正确的方向让我的项目开始?我将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

尝试这个:

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<Path>;"

如果您有密码,请尝试结束

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=<Path>;Jet OLEDB:Database Password=<Pass>;"