任何人都可以給我一個在遠程Linux機器上從PHP查詢Pervasive PSQL數據庫的例子嗎?在Linux上對PHP進行普遍的ODBC訪問?
Pervasive聲明PHP可以訪問它,但是它們的示例使用Windows COM對象,這在Linux上不可用,並且他們下載的第一個「PHP DTO Extensions 1」鏈接實際上鍊接到一堆ASP .NET腳本和甚至不是PHP都: Pervasive PHP Examples
任何人都可以給我一個在遠程Linux機器上從PHP查詢Pervasive PSQL數據庫的例子嗎?在Linux上對PHP進行普遍的ODBC訪問?
Pervasive聲明PHP可以訪問它,但是它們的示例使用Windows COM對象,這在Linux上不可用,並且他們下載的第一個「PHP DTO Extensions 1」鏈接實際上鍊接到一堆ASP .NET腳本和甚至不是PHP都: Pervasive PHP Examples
我想你需要的是PDO擴展http://nl.php.net/manual/en/pdo.installation.php它可以連接到支持ODBC
我會讓Pervasvive知道自己需要改變任何數據庫例子。我在那裏有一些聯繫。至於從Linux機箱使用PSQL,您沒有提及您使用的是什麼版本的PSQL,但您需要Linux的PSQL客戶機。以下是我之前用來測試從Linux(和WIndows)上的PHP到PSQL服務器的連接的示例。在odbc_connect中,「Demodata」是ODBC DSN名稱。另外兩個參數是用戶名和密碼。您需要在PHP中編譯(或啓用)ODBC。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>PHP Sample</TITLE>
</HEAD>
<BODY>
<?php
$conn=odbc_connect("Demodata","","","");
$sql="select * from class";
$rs=odbc_exec($conn,$sql);
echo "<table border=1>\n";
$numfields = odbc_num_fields($rs);
for($i=1;$i<=$numfields;$i++){
$fn=odbc_field_name($rs,$i);
echo "<th>$fn</th>";
}
echo "\n";
while(odbc_fetch_row($rs)){
echo "<tr>\n";
for($i=1;$i<=$numfields;$i++){
$fv=odbc_result($rs,$i);
echo "<td>$fv</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
echo "<p>Number of Fields: $numfields</p>\n";
?>
</BODY>
</HTML>
如果你能普適服務器上安裝的東西,你可以嘗試使用odbtp。它是服務器上的ODBC驅動程序與可在Linux或Windows上運行的客戶端之間的橋樑。從here取自php的查詢示例是
<?php
$con = odbtp_connect('odbtp.somewhere.com',
'DRIVER={SQL Server};SERVER=myserver;UID=myuid;PWD=mypwd;DATABASE=mydb;') or die;
odbtp_set_attr(ODB_ATTR_FULLCOLINFO, TRUE);
$qry = odbtp_query($_REQUEST['query']) or die;
do {
if(($msg = odbtp_get_message($qry))) {
echo "MESSAGE: $msg<p>";
continue;
}
if(($cols = odbtp_num_fields($qry)) == 0) {
echo odbtp_affected_rows($qry);
echo " rows affected<p>\n";
continue;
}
echo "<table cellpadding=2 cellspacing=0 border=1>\n";
echo "<tr>";
for($col = 0; $col < $cols; $col++) {
echo "<td><nobr> " . odbtp_field_name($qry, $col);
echo " (" . odbtp_field_type($qry, $col) . ") </nobr></td>";
if(odbtp_field_bindtype($qry, $col) == ODB_DATETIME)
odbtp_bind_field($qry, $col, ODB_CHAR);
}
echo "</tr>\n";
while(($rec = odbtp_fetch_array($qry))) {
echo "<tr>";
for($col = 0; $col < $cols; $col++) {
if(is_null($rec[$col])) $rec[$col] = "NULL";
echo "<td><nobr> $rec[$col] </nobr></td>";
}
echo "</tr>\n";
}
echo "</table><p>\n";
echo odbtp_affected_rows($qry);
echo " rows affected<p>\n";
}
while(odbtp_next_result($qry));
odbtp_close(); ?>