Может ли кто-нибудь дать мне пример запроса Pervasive PSQL базы данных из PHP на удаленной машине Linux?
Всепроникающие требования PHP могут получить к нему доступ, но их примеры используют объекты Windows COM, которые недоступны в Linux, и первая ссылка «PHP DTO Extensions 1», которую они загружают, фактически ссылается на кучу сценариев ASP .NET и isn 't даже PHP вообще: Pervasive PHP Примеры
Я дам Pervasvive понять, что им нужно изменить образец. У меня там какие-то контакты. Что касается использования PSQL из Linux, вы не укажете, какую версию PSQL вы используете, но вам нужен клиент PSQL для Linux. Вот пример, который я использовал ранее, чтобы проверить подключение с PHP на Linux (и WIndows) к PSQL-серверу. В odbc_connect «Демодата» является именем DSN ODBC. Другими двумя параметрами являются имя пользователя и пароль. Вам нужно будет скомпилировать (или включить) ODBC в PHP.
<!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>
Я думаю, что вам нужно расширение PDO. http://nl.php.net/manual/en/pdo.installation.php он может подключаться к любой базе данных, которая поддерживает ODBC
Если вы можете установить что-то на Pervasive Server, вы можете попробовать использовать odbtp. Это мост между драйвером ODBC на сервере и клиентами, которые могут работать в Linux или Windows. пример запроса из 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(); ?>