致命错误:尝试使用ADODB时未找到“COM”类

时间:2008-10-23 19:56:13

标签: php adodb fatal-error

        include('adodb5/adodb.inc.php');

        $myServer = "localhost";
        $myUser = "root";
        $myPass = "root";
        $myDB = "database";

        //create an instance of the  ADO connection object
        $conn = new COM("ADODB.Connection") or die("Cannot start ADO");

        //define connection string, specify database driver
        $connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB;
        $conn->open($connStr); //Open the connection to the database 

这是我第一次遇到ADODB库,据说它可以帮助我从MySQL切换到Microsoft SQL Server。有没有人知道我为什么会收到此错误,或者是否有更简单的方法不涉及使用php.ini文件?

3 个答案:

答案 0 :(得分:2)

如果您想使用以下代码:

new COM("ADODB.Connection") 

你需要在PHP中启用“COM支持”,例如使用com_dotnet扩展名(php_com_dotnet.dll)How to install COM extension

答案 1 :(得分:1)

您似乎正在包含PHP adodb库,但之后并未实际使用它 - 而是尝试实现(微软)ADO COM对象。

如果您没有从PHP安装/使用ADO,您可以尝试使用ODBC DSN-less连接,如:

include('adodb5/adodb.inc.php');

$myServer = "localhost";
$myUser = "root";
$myPass = "root";
$myDB = "database";


$db = ADONewConnection('odbc_mssql');
$dsn = "Driver={SQL Server};Server={{$myServer}};Database={{$myDB}};";
$db->Connect($dsn,$myUser,$myPass) or die($db->ErrorMsg());         

if (!$rs = $db->Execute('select * from table')) die($db->ErrorMsg());

while (!$rs->EOF) {
    print_r($rs->fields);
    $rs->MoveNext();
}

$rs->Close();   

另请参阅http://phplens.com/adodb/code.initialization.html#connect_ex

上的其他连接示例

答案 2 :(得分:0)

最可能的原因是服务器上未正确安装ADO。尝试运行最新版本的MDAC并确保正确安装然后尝试使用agin。有关详细信息,请使用更多信息更新您的问题我假设你在Windows服务器上?