abies           Sun Feb 15 13:34:48 2004 EDT

  Modified files:              
    /php-src/ext/interbase      interbase.c 
    /php-src/ext/interbase/tests        003.phpt 
  Log:
  Reintroduce param NULL testing (see bug #26777)
  
  
http://cvs.php.net/diff.php/php-src/ext/interbase/interbase.c?r1=1.200&r2=1.201&ty=u
Index: php-src/ext/interbase/interbase.c
diff -u php-src/ext/interbase/interbase.c:1.200 php-src/ext/interbase/interbase.c:1.201
--- php-src/ext/interbase/interbase.c:1.200     Wed Feb 11 07:08:44 2004
+++ php-src/ext/interbase/interbase.c   Sun Feb 15 13:34:46 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: interbase.c,v 1.200 2004/02/11 12:08:44 abies Exp $ */
+/* $Id: interbase.c,v 1.201 2004/02/15 18:34:46 abies Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -30,7 +30,7 @@
 
 #include "php.h"
 
-#define FILE_REVISION "$Revision: 1.200 $"
+#define FILE_REVISION "$Revision: 1.201 $"
 
 #if HAVE_IBASE
 
@@ -754,7 +754,7 @@
 #ifdef __GNUC__
                void (*info_func)(char*) = dlsym(RTLD_DEFAULT, 
"isc_get_client_version");
 #else
-               void (__stdcall *info_func)(char*) = NULL;
+               void (__stdcall *info_func)(char*);
 
                HMODULE l = GetModuleHandle("fbclient");
 
@@ -1615,8 +1615,8 @@
 }              
 /* }}} */
 
-static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf,
-       ibase_query *ib_query TSRMLS_DC) /* {{{ */
+static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, /* {{{ */
+       ibase_query *ib_query TSRMLS_DC)
 {
        int i, rv = SUCCESS;
        XSQLVAR *var = sqlda->sqlvar;
@@ -1628,6 +1628,10 @@
                var->sqlind = &buf[i].sqlind;
                
                if (Z_TYPE_P(b_var) == IS_NULL) {
+                       if ((var->sqltype & 1) != 1) {
+                               _php_ibase_module_error("Parameter %d must have a 
value" TSRMLS_CC, i+1);
+                               rv = FAILURE;
+                       }
                        buf[i].sqlind = -1;
                } else {
                        buf[i].sqlind = 0;
http://cvs.php.net/diff.php/php-src/ext/interbase/tests/003.phpt?r1=1.5&r2=1.6&ty=u
Index: php-src/ext/interbase/tests/003.phpt
diff -u php-src/ext/interbase/tests/003.phpt:1.5 
php-src/ext/interbase/tests/003.phpt:1.6
--- php-src/ext/interbase/tests/003.phpt:1.5    Fri Sep  5 13:02:02 2003
+++ php-src/ext/interbase/tests/003.phpt        Sun Feb 15 13:34:47 2004
@@ -5,14 +5,14 @@
 --POST--
 --GET--
 --FILE--
-<?php /* $Id: 003.phpt,v 1.5 2003/09/05 17:02:02 abies Exp $ */
+<?php /* $Id: 003.phpt,v 1.6 2004/02/15 18:34:47 abies Exp $ */
 
     require("interbase.inc");
     ibase_connect($test_base);
     
     ibase_query(
        "create table test3 (
-            iter               integer,
+            iter               integer not null,
             v_char             char(1000),
             v_date      timestamp,
                        v_decimal4_2            decimal(4,2),
@@ -29,6 +29,9 @@
             )");
     ibase_commit();
 
+       /* should fail, but gracefully */
+       @ibase_query("insert into test3 (iter) values (?)", null);
+       
     /* if timefmt is not supported, suppress error here */
     @ibase_timefmt("%m/%d/%Y %H:%M:%S");
 
@@ -41,7 +44,7 @@
        $v_decimal7_2 = rand_number(7,2); 
        $v_decimal7_0 = rand_number(7,0);
        $v_numeric15_15 = rand_number(15,15);
-       $v_numeric15_0 = rand_number(15,0);
+       $v_numeric15_0 = $iter ? rand_number(15,0) : 0;
        $v_double  = rand_number(18);
        $v_float   = rand_number(7);
        $v_integer = rand_number(9,0);
@@ -88,7 +91,7 @@
             echo " in:  $v_numeric15_15\n";
             echo " out: $row->V_NUMERIC15_15\n";
         }
-        if($row->V_NUMERIC15_0 != $v_numeric15_0){
+        if($row->V_NUMERIC15_0 != (string)$v_numeric15_0){
             echo " NUMERIC15_0 fail\n";
             echo " in:  $v_numeric15_0\n";
             echo " out: $row->V_NUMERIC15_0\n";

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to