【问题标题】:Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified警告:odbc_connect():SQL 错误:[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序
【发布时间】:2018-06-28 14:54:33
【问题描述】:

我已将 Ms Access 数据库连接到 PHP 文件。 PHP文件报错

“警告:odbc_connect(): SQL 错误:[Microsoft][ODBC Driver Manager]

未找到数据源名称且未指定默认驱动程序,SQLConnect 中的 SQL 状态 IM002 在 C:\wamp\www\PI\Connection.php 第 3 行"。

连接.php

<?php
$con = odbc_connect("PIInstitute","","");
if($con){
    echo "Connected";
}else{
    echo "Failed";
}
?>

【问题讨论】:

    标签: php database ms-access-2007


    【解决方案1】:

    您需要在调用odbc_connect() 时指定您的驱动程序,如下所示:

    $conn =  odbc_connect ( "Driver={SQL Server};Server=$servername;Database=$dbname;", $username, $password ) or die ( "Connection failed: " . $conn );
    

    您可以在odbc_connect()这里找到更多信息:http://php.net/manual/en/function.odbc-connect.php

    【讨论】:

    • 我没有连接sql server。我已将 Ms Access 数据库连接到 Php。
    • 试试这个{Microsoft Access Driver (*.mdb)} 而不是{SQL Server}
    • 在我的答案中包含的链接上查看 cmets,有些人有相关问题
    【解决方案2】:

    其他 ODBC 函数需要此函数返回的连接 ID。您可以同时打开多个连接,只要它们使用不同的数据库或不同的凭据即可。

    resource odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] )
    
    <?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" , '', '');
    ?>
    

    【讨论】:

    • $connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);
    • 我收到了同样的错误信息。 ODBC 驱动程序不是 64 位的。我必须将我的应用程序编译为 x86 进程并且它工作。我只是想把它扔给遇到它的其他人。
    猜你喜欢
    • 2010-09-21
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    相关资源
    最近更新 更多