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 ([EMAIL PROTECTED]).
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 <[EMAIL PROTECTED]> |
| Andreas Karajannis <[EMAIL PROTECTED]> |
| Frank M. Kromann <[EMAIL PROTECTED]> Support for DB/2 CLI |
- | Kevin N. Shallow <[EMAIL PROTECTED]> Velocis Support |
+ | Kevin N. Shallow <[EMAIL PROTECTED]> Velocis Support |
+ | Daniel R. Kalowsky <[EMAIL PROTECTED]>
+ |
+----------------------------------------------------------------------+
*/
-/* $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];
--
PHP CVS 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]