ID: 16742
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: ODBC related
Operating System: win2000 sp2
PHP Version: 4.2.0
New Comment:
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
Previous Comments:
------------------------------------------------------------------------
[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