cvs: php4 /ext/odbc php_odbc.c
| From: | Dan Kalowsky | Date: | Thu, 19 Apr 2001 02:31:23 +0000 |
| Subject: | cvs: php4 /ext/odbc php_odbc.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-5160@lists.php.net to get a copy of this message | ||
kalowsky Wed Apr 18 19:31:23 2001 EDT
Modified files:
/php4/ext/odbc php_odbc.c
Log:
corrects bug #7488, patch supplied by submitter (torben@php.net).
quick local tests show it to work.
Index: php4/ext/odbc/php_odbc.c
diff -u php4/ext/odbc/php_odbc.c:1.78 php4/ext/odbc/php_odbc.c:1.79
--- php4/ext/odbc/php_odbc.c:1.78 Mon Apr 16 19:02:36 2001
+++ php4/ext/odbc/php_odbc.c Wed Apr 18 19:31:23 2001
@@ -15,11 +15,12 @@
| Authors: Stig Sæther Bakken <ssb@fast.no> |
| Andreas Karajannis <Andreas.Karajannis@gmd.de> |
| Frank M. Kromann <frank@frontbase.com> Support for DB/2 CLI |
- | Kevin N. Shallow <kshallow@tampabay.rr.com> Velocis Support |
+ | Kevin N. Shallow <kshallow@tampabay.rr.com> Velocis Support |
+ | Daniel R. Kalowsky <kalowsky@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_odbc.c,v 1.78 2001/04/17 02:02:36 kalowsky Exp $ */
+/* $Id: php_odbc.c,v 1.79 2001/04/19 02:31:23 kalowsky Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -64,7 +65,7 @@
#define SAFE_SQL_NTS(n) ((SWORD) ((n)?(SQL_NTS):0))
-static unsigned char a3_arg3_force_ref[] = { 3, BYREF_NONE, BYREF_ALLOW, BYREF_FORCE };
+static unsigned char a3_arg3_and_3_force_ref[] = { 3, BYREF_NONE, BYREF_FORCE, BYREF_FORCE };
function_entry odbc_functions[] = {
PHP_FE(odbc_error, NULL)
@@ -85,7 +86,7 @@
PHP_FE(odbc_prepare, NULL)
PHP_FE(odbc_execute, NULL)
PHP_FE(odbc_fetch_row, NULL)
- PHP_FE(odbc_fetch_into, a3_arg3_force_ref)
+ PHP_FE(odbc_fetch_into, a3_arg3_and_3_force_ref)
PHP_FE(odbc_field_len, NULL)
PHP_FE(odbc_field_scale, NULL)
PHP_FE(odbc_field_name, NULL)
@@ -1363,7 +1364,8 @@
break;
case 3:
if (zend_get_parameters_ex(3, &pv_res, &pv_row, &pv_res_arr) == FAILURE)
- WRONG_PARAM_COUNT;
+ WRONG_PARAM_COUNT;
+ SEPARATE_ZVAL(pv_row);
convert_to_long_ex(pv_row);
rownum = (*pv_row)->value.lval;
break;
@@ -1380,11 +1382,6 @@
WRONG_PARAM_COUNT;
}
#endif
-
- if (!ParameterPassedByReference(ht, numArgs)) {
- php_error(E_WARNING, "Array not passed by reference in call to odbc_fetch_into()");
- RETURN_FALSE;
- }
ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result);
@@ -1922,7 +1919,11 @@
return FALSE;
}
}
-#ifdef HAVE_EMPRESS
+/* Possible fix for bug #
+ * Needs testing on UnixODBC < 2.0.5 though.
+ * #if defined(HAVE_EMPRESS) || defined(HAVE_UNIXODBC)
+ * Uncomment the line above, and comment line below to fully test */
+#ifdef HAVE_EMPRESS
{
int direct = 0;
char dsnbuf[300];