PHP普及SQL连接

时间:2019-01-09 16:59:42

标签: php pervasive-sql

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

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

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

1 个答案:

答案 0 :(得分:0)

以下代码在使用PHP 7.31的x64环境中为我工作,并且在PHP.INI中启用了ODBC扩展。我还使用v11.30 x64 Client连接到远程PSQL v11服务器。

<?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。重新启动计算机可修复该错误。