ID: 16742 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Analyzed +Status: Closed Bug Type: ODBC related Operating System: win2000 sp2 PHP Version: 4.2.0 New Comment:
Closing... fix will be in 4.2.1 (due in a few days). Derick Previous Comments: ------------------------------------------------------------------------ [2002-05-01 02:29:58] [EMAIL PROTECTED] This bug seems to be fixed in the latest snapshots of 4.2 branch and HEAD as of 2002-05-01. At least for me it works again. Thanks a lot Christoph ------------------------------------------------------------------------ [2002-04-26 10:27:26] [EMAIL PROTECTED] As far as the cursor is concerned, from the MS ODBC SDK: SQLExtendedFetch Similar to SQLFetch but returns multiple rows using an array for each column. The result set is forward-scrollable and can be made backward-scrollable if the cursor is defined to be static, not forward-only. The code for the first two examples is correct (the php source and the sample scripts). I'm wondering if the ODBC v3.7 (in the latests MDACs from MS) isn't mapping SQLFetchScroll to SQLExtendedFetch properly, or if it's somewhere else. ------------------------------------------------------------------------ [2002-04-26 07:40:32] [EMAIL PROTECTED] For MyODBC towards MySQL this problem is due to incorrect cursor type. I the function odbc_exec/odbc_prepare(), the cursor is set to SQL_CURSOR_FORWARD_ONLY which makes it impossible for MyODBC to use SQLFetchExtended(). To make this function work with MyODBC, change to SQL_CURSOR_STATIC on line 1184 in php_odbc.c. To make this work with odbc_prepare() i guess line 820 has to be changed as well. /* $Id: php_odbc.c,v 1.120.2.1 2002/04/08 22:21:30 sniper Exp $ */ Marcus Karlsson Testbolaget AB ------------------------------------------------------------------------ [2002-04-24 08:59:41] [EMAIL PROTECTED] ODBC communication also fail with OS: NT40 (and Apache) No error return!! (work with php 4.1.1) Code: <?php $conn = odbc_connect($dsn, $uid, $pwd) or die( "Error DB connect" ); $sql="SELECT * FROM $dbname ORDER BY dateposted DESC"; if(($result = odbc_exec($conn, $sql))) { $bzm = 1; while(odbc_fetch_row($result, $bzm)) { echo odbc_result($result,"name")."<br>"; $bzm++; } } odbc_free_result($result); ?> ------------------------------------------------------------------------ [2002-04-23 01:07:46] [EMAIL PROTECTED] The following code works for the first sql statement however fails on the odbc_fetch_row for the second when the second parmeter is set. This works for php4.1.2 but fails on php4.2.0 ODBC connected to Access97 database, running Apache2 ---------------------------------------------------- CODE ---------------------------------------------------- $DB_TMS = odbc_connect("tms", "", ""); $sql = "select * from users where name='Root' and pass='1111'"; $res = odbc_exec($DB_TMS, $sql); if( odbc_fetch_row($res)) echo "Found Record <br>"; else echo "No Record Found <br> "; odbc_free_result($res); $sql = "select * from users where name='Root' and pass='1111'"; $res = odbc_exec($DB_TMS, $sql); if( odbc_fetch_row($res, 1)) echo "Found Record <br>"; else echo "No Record Found <br> "; odbc_free_result($res); odbc_close_all( ); ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16742&edit=1