From: [EMAIL PROTECTED] Operating system: MacOSX 10.1.2 PHP version: 4.1.1 PHP Bug Type: ODBC related Bug description: odbc_fetch_row does not always return all rows
odbc_fetch_row( $cur) called repeatedly without passing the row argument should retrieve all the rows in a rowset sequentially. Instead, in my setup, if the query, to which $cur relates, is a SELECT * FROM ... ORDER BY..., a number or rows will be dropped (it seems rows for which some column is not unique in the rowset). My setup is: MacOSX 10.1.2 (what a pain to compile php4.1.1 on it!) DB: OpenLink Virtuoso Lite 2.5 iodbc + Openlink Virtuoso Driver 02.50.2139 php built using: ./configure --prefix=/usr --sysconfdir=/etc -- localstatedir=/var --mandir=/usr/share/man --with-zlib -- with-xml --with-iodbc=/usr/local/odbcsdk --with-apxs < / dev/null (note that I had to use the libtool generated under 4.0.6 in order to compile 4.1.1) and this is the sample script (it includes the workaround, that is to always pass the $row argument to odbc_fetch_row) <?php $conn = odbc_connect("test", "user","pass"); $Query = "SELECT * FROM Bugtable ORDER BY Name"; /* BugTable is: CREATE TABLE Test.dba.BugTable ( ID int IDENTITY NOT NULL PRIMARY KEY UNIQUE, Name char (10) ); */ //execute query $cur=odbc_exec($conn, $Query); $Outer=0; while( odbc_fetch_row( $cur)){ // this does not retrieve all // while( odbc_fetch_row( $cur, ++$Outer )){ // this does for($i=1; $i <= 2; $i++){ printf("%s ", odbc_result( $cur, $i )); } print "<p>"; } //disconnect from database odbc_close( $conn); ?> -- Edit bug report at: http://bugs.php.net/?id=15306&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]