如何将PHP与Microsoft Access数据库连接

时间:2013-11-06 08:21:46

标签: php ms-access odbc

我目前面临着使用Microsoft Access作为主数据库而不是mysql开发网站的新挑战。我之前没有使用MS Access,我想了解如何解决这个问题,我已经在W3schools查找了w3c网站,但代码错误

  

警告:odbc_connect()[function.odbc-connect]:SQL错误:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序,C:\ Users \ NNALI中SQLConnect中的SQL状态IM002第2行上的\ Desktop \ root \ test.php

和此错误

  

警告:odbc_exec()要求参数1为资源,布尔值在第4行的C:\ Users \ NNALI \ Desktop \ Breweries \ root \ test.php中给出

我被困住了,不知道该怎么办,我将非常感谢你们的帮助。

<?php
    $conc = odbc_connect("northwind", "","");
    $sql  = "Select * From customers";
    $rs   = odbc_exec($conn, $sql);
?>

以上是我使用的代码

6 个答案:

答案 0 :(得分:9)

如果您刚刚开始使用新项目,那么我建议您使用PDO而不是旧的odbc_exec()方法。这是一个简单的例子:

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

$connStr = 
        'odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};' .
        'Dbq=C:\\Users\\Gord\\Desktop\\foo.accdb;';

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

$sql = 
        "SELECT AgentName FROM Agents " .
        "WHERE ID < ? AND AgentName <> ?";
$sth = $dbh->prepare($sql);

// query parameter value(s)
$params = array(
        5,
        'Homer'
        );

$sth->execute($params);

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

答案 1 :(得分:4)

问题是一个简单的错字。你在第2行命名变量'conc',然后在第4行引用'conn'。

答案 2 :(得分:3)

<?php
    $dbName = $_SERVER["DOCUMENT_ROOT"] . "products\products.mdb";
    if (!file_exists($dbName)) {
       die("Could not find database file.");
    }
    $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$dbName; Uid=; Pwd=;");

成功连接将允许从PHP执行SQL命令以读取或写入数据库。但是,如果您收到错误消息“PDOException无法找到驱动程序”,则可能是未安装PDO ODBC驱动程序。使用phpinfo()函数检查安装是否有对PDO的引用。

如果没有PDO ODBC条目,则需要确保您的安装包含PDO扩展和ODBC驱动程序。要在Windows上执行此操作,请取消注释php.ini中的行extension = php_pdo_odbc.dll,重新启动Apache,然后再次尝试连接到数据库。

安装驱动程序后,phpinfo()的输出应包含以下信息:https://www.diigo.com/item/image/5kc39/hdse

http://i.stack.imgur.com/Zwp2W.png

答案 3 :(得分:2)

您确定odbc连接器是否创建良好? 如果没有再次检查“创建ODBC连接”步骤

编辑没有DSN的连接 php.net

// Microsoft Access

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

在您的情况下,如果您的文件名是northwind并且您的文件扩展名为mdb:

$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=northwind", "", "");

答案 4 :(得分:1)

答案 5 :(得分:0)

如果您在XAMPP环境中无法正常使用连接,建议不要在php.ini文件中注释以下条目。

extension = odbc

我收到一个没有它的错误:Uncaught pdoexception: could not find driver