我正在将PHP连接到Pervasive SQL,并且连接不断重置
此连接在Windows Server 2012上使用Apache 2.4上的PHP7。我已经创建了DNS连接,测试可以成功连接到数据库。
<?php
$conn=odbc_connect("brps","","");
if(!$conn) die("Could not connect");
?>
答案 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。重新启动计算机可修复该错误。