]> granicus.if.org Git - php/commitdiff
Fixed bug #44325 (mssql_bind not correctly bind empty strings as parameter
authorIlia Alshanetsky <iliaa@php.net>
Tue, 4 Mar 2008 19:38:38 +0000 (19:38 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 4 Mar 2008 19:38:38 +0000 (19:38 +0000)
value)

ext/mssql/php_mssql.c

index 7987046982a5325ed52654080a3964dfdfd8163c..822bcf15ad387128224da3f2bf81cb60a1d87342 100644 (file)
@@ -2067,14 +2067,19 @@ PHP_FUNCTION(mssql_bind)
 
        /* modify datalen and maxlen according to dbrpcparam documentation */
        if ( (type==SQLVARCHAR) || (type==SQLCHAR) || (type==SQLTEXT) ) {       /* variable-length type */
-               if (is_null) {
+               if (is_null || Z_TYPE_PP(var) == IS_NULL) {
                        maxlen=0;
                        datalen=0;
-               }
-               else {
+               } else {
                        convert_to_string_ex(var);
-                       datalen=Z_STRLEN_PP(var);
-                       value=(LPBYTE)Z_STRVAL_PP(var);
+                       datalen = Z_STRLEN_PP(var);
+                       value = (LPBYTE)Z_STRVAL_PP(var);
+                       if (!datalen) {
+                               datalen = 1;
+                               if (maxlen == -1) {
+                                       maxlen = 1;
+                               }
+                       }
                }
        }
        else    {       /* fixed-length type */