PHP PDO ODBC连接到普及数据库

PHP PDO ODBC连接到普及数据库,php,pdo,pervasive,Php,Pdo,Pervasive,全部32位。Windows 2018服务器。 PVSQL v10(我无法更新此) PHP5.3.28(我可能会将其更新为5.6.x)7.x会破坏太多 我试着到处搜索一个关于如何使用PDO将PHP连接到普及数据库的示例。我已成功使用以下非PDO连接器进行连接: $conn = odbc_connect("demodata","",""); if(!$conn) die("Could not connect"); 从中查看示例 我发现我应该使用类似于: try { $con

全部32位。Windows 2018服务器。 PVSQL v10(我无法更新此)

PHP5.3.28(我可能会将其更新为5.6.x)7.x会破坏太多

我试着到处搜索一个关于如何使用PDO将PHP连接到普及数据库的示例。我已成功使用以下非PDO连接器进行连接:

$conn = odbc_connect("demodata","","");
if(!$conn) die("Could not connect");
从中查看示例 我发现我应该使用类似于:

    try {
        $conn = new PDO("odbc:Driver={Pervasive ODBC Client Interface};ServerDSN=demodata;");
        if(!$conn) die("Could not connect");
    }
    catch (PDOException $e) {
      echo $e->getMessage();
      exit;
    }
我还尝试:

        $conn = new PDO("odbc:Driver={Pervasive ODBC Client Interface};ServerName=localhost;SeverDSN=demodata;");
        $conn = new PDO("odbc:Driver={Pervasive ODBC Client Interface};ServerName=localhost;SeverDSN=DEMODATA;");
当我这么做的时候。我得到一个错误:

SQLSTATE[HY000]SQLDriverConnect:-1206[普及][ODBC客户端 接口][LNA][普及][ODBC引擎接口][数据记录 Manager]非数据库文件或已损坏的数据库

但我知道它没有被破坏。我可以用另一种方式连接和查询。我非常希望能够使用PDO。当我从普及ODBC客户端DSN设置中执行测试时。我连接成功


我错过了什么?

感谢@Mitheil为我指明了正确的方向。即使在本地计算机上,服务器名称似乎也是必须的。所以需要的字符串是:“odbc:Driver={popusiveodbcclientinterface};ServerName=db;ServerDSN=demodata;”


不抱歉,我已经看过了。这不是PDO。这与我最初使用的连接相同。我希望使用PDO将其连接起来。谢谢你的时间。这都在同一台机器上吗(PHP、普及、数据等)?它是在Windows还是Linux上?如果它不在同一台计算机上,请将您的服务器名更改为运行普适且数据库所在的计算机名。对于普适客户端,您不会这样做。这就是为什么原创作品。您可以连接本地。我已经正确安装了普及客户端。并且可以不使用PDO进行连接。我只是不明白为什么它说它腐败。当通过PDO连接时。我一定缺少一些参数。我已更新问题以显示其窗口。如果您的连接字符串与此处显示的相同,则说明您输入了一个拼写错误。你有SeverDSN,但它应该是ServerDSN。接得好,但那只是一个输入错误。我确实不得不去看看,但不同的错误发生了。我看到我可以使用DSN或ServerDSN。两种我都试过了。
    try {
        $conn = new PDO("odbc:Driver={Pervasive ODBC Client Interface};ServerName=db;ServerDSN=demodata;");
        if(!$conn) die("Could not connect");
    }
    catch (PDOException $e) {
      echo $e->getMessage();
      exit;
    }