PHP 无孔不入 SQL 连接

PHP Pervasive SQL connection

我正在将 PHP 连接到 Pervasive SQL,并且连接不断重置

此连接在 Windows Server 2012 上使用 Apache 2.4 上的 PHP7。我已经创建了DNS连接,测试可以成功连接数据库

<?php
  $conn=odbc_connect("brps","","");
   if(!$conn) die("Could not connect");
?>

以下代码在 x64 环境中适用于我,使用 PHP 7.31 并在 PHP.INI 中启用了 ODBC 扩展。我还使用连接到远程 PSQL v11 服务器的 v11.30 x64 客户端。

<?php
  $conn=odbc_connect("brpp","","");
   if(!$conn) die("Could not connect");
$result = odbc_tables($conn);

echo '<div id="top">..</div><table border="1" cellpadding="5"><tr>';

$tblRow = 1;
while (odbc_fetch_row($result)){
  if(odbc_result($result,"TABLE_TYPE")=="TABLE"){
    $tableName = odbc_result($result,"TABLE_NAME");
    echo '<tr><td>' . $tblRow . '</td><td><a href="#' . $tableName . '">' . $tableName . '</a></td></tr>';
    $tblRow++;
  }  
}
echo '</table><hr>';

$result = odbc_tables($conn);

while (odbc_fetch_row($result)){
  if(odbc_result($result,"TABLE_TYPE")=="TABLE"){
    $tableName = odbc_result($result,"TABLE_NAME");

    echo '<div id="' . $tableName . '"> *** ' . $tableName . ' *** <a href="#top">top</a></div>';

    $cols = odbc_exec($conn, "SELECT * FROM $tableName WHERE 1=2");
    $ncols = odbc_num_fields($cols);

    for ($n=1; $n<=$ncols; $n++) {
      $field_name = odbc_field_name($cols, $n);
      echo $field_name . "<br>";
    }    
    echo '<hr>';
  }
}
?>

如果 DSN 不存在,我会得到一个错误:

    Warning: odbc_connect(): SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in C:\Wnmp\html\phpodbc.php on line 2
Could not connect

我在安装 PSQL x64 客户端后收到系统错误 998。重新启动机器修复了该错误。