ID: 34852
Comment by: adrian dot chadd at uwa dot edu dot au
Reported By: tim dot tassonis at trivadis dot com
Status: No Feedback
Bug Type: ODBC related
Operating System: Linux
PHP Version: 5CVS-2005-11-03 (cvs)
New Comment:
We're having the same problem:
matrix:~# php5 -v
PHP 5.1.2-1 (cli) (built: Jan 18 2006 06:49:47)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
matrix:~# cat adri.php5
<?php
$connect = odbc_connect(auth and db stuff goes here);
$result = @odbc_data_source($connect, SQL_FETCH_FIRST);
while ($result) {
print "result:\n";
print_r($result); print "\n";
$result = @odbc_data_source($connect, SQL_FETCH_NEXT);
}
$res = odbc_prepare($connect, "SELECT * FROM FOO");
odbc_close($connect);
?>
matrix:~# php5 adri.php5
result:
Array
(
[server] => HISDEV
[description] => OracleODBC-10g
)
Warning: odbc_prepare(): SQL error: [unixODBC][Driver Manager]Driver
does not support this function, SQL state IM001 in SQLSetStmtOption in
/root/adri.php5 on line 12
matrix:~# dpkg -l | grep odbc
rc odbcinst1 2.2.4-11 Support library and helper program
for acces
ii odbcinst1debia 2.2.11-10 Support library and helper program
for acces
ii php5-odbc 5.1.2-1 ODBC module for php5
ii unixodbc 2.2.11-10 ODBC tools libraries
Can someone shed some light on this? What can/should I try?
adrian
Previous Comments:
------------------------------------------------------------------------
[2005-12-20 01:00:05] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2005-12-12 10:31:21] [EMAIL PROTECTED]
Can you repeat this error when using the PDO odbc ??
------------------------------------------------------------------------
[2005-11-30 21:09:46] [EMAIL PROTECTED]
Unfortunately Dan can not be involved in this. (some license thing)
------------------------------------------------------------------------
[2005-11-04 01:49:46] [EMAIL PROTECTED]
Tony: Check with Dan Scott before applying this patch; he's probably
most current on this aspect of the odbc extension.
------------------------------------------------------------------------
[2005-10-13 13:34:40] tim dot tassonis at trivadis dot com
Well, here is a patch. I dont know whether the formatting is preserved
her properly, it should apply cleanly with "patch -p1 < patchfile" from
whithing the php-5.0.5 directory.
The patch just stops odbc_exec and odbc_prepare from failing if the
SQLSetStmtOption fails. The warning is still displayed in the
error_log. It would be great if this could be applied.
So below follows the patch (created with diff -ruN):
diff -ruN php-5.0.5/ext/odbc/php_odbc.c
php-5.0.5-ora/ext/odbc/php_odbc.c
--- php-5.0.5/ext/odbc/php_odbc.c 2005-07-03 00:50:01.000000000 +0200
+++ php-5.0.5-ora/ext/odbc/php_odbc.c 2005-10-13 12:20:55.000000000
+0200
@@ -875,9 +875,11 @@
if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE,
SQL_CURSOR_DYNAMIC)
== SQL_ERROR) {
odbc_sql_error(conn, result->stmt, "
SQLSetStmtOption");
+ /* Dont fail, but go on. This can happen
SQLFreeStmt(result->stmt, SQL_DROP);
efree(result);
RETURN_FALSE;
+ */
}
}
} else {
@@ -1296,9 +1298,11 @@
if (SQLSetStmtOption(result->stmt, SQL_CURSOR_TYPE,
SQL_CURSOR_DYNAMIC)
== SQL_ERROR) {
odbc_sql_error(conn, result->stmt, "
SQLSetStmtOption");
+ /* Dont fail, but go on. This can happen
SQLFreeStmt(result->stmt, SQL_DROP);
efree(result);
RETURN_FALSE;
+ */
}
}
} else {
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/34852
--
Edit this bug report at http://bugs.php.net/?id=34852&edit=1