georg           Tue Mar 14 15:53:17 2006 UTC

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/mysqli mysqli_api.c 
  Log:
  fixed a 64-bit problem reported by Pierre
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/mysqli/mysqli_api.c?r1=1.118.2.17&r2=1.118.2.18&diff_format=u
Index: php-src/ext/mysqli/mysqli_api.c
diff -u php-src/ext/mysqli/mysqli_api.c:1.118.2.17 
php-src/ext/mysqli/mysqli_api.c:1.118.2.18
--- php-src/ext/mysqli/mysqli_api.c:1.118.2.17  Sat Mar 11 11:16:03 2006
+++ php-src/ext/mysqli/mysqli_api.c     Tue Mar 14 15:53:16 2006
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_api.c,v 1.118.2.17 2006/03/11 11:16:03 georg Exp $ 
+  $Id: mysqli_api.c,v 1.118.2.18 2006/03/14 15:53:16 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -295,7 +295,7 @@
                                convert_to_long_ex(args[i]);
                                stmt->result.buf[ofs].type = IS_LONG;
                                stmt->result.buf[ofs].buflen = 0;
-                               stmt->result.buf[ofs].val = (char 
*)emalloc(sizeof(long));
+                               stmt->result.buf[ofs].val = (char 
*)emalloc(sizeof(int));
                                bind[ofs].buffer_type = MYSQL_TYPE_LONG;
                                bind[ofs].buffer = stmt->result.buf[ofs].val;
                                bind[ofs].is_null = &stmt->result.is_null[ofs];
@@ -663,7 +663,7 @@
                        if (!stmt->result.is_null[i]) {
                                switch (stmt->result.buf[i].type) {
                                        case IS_LONG:
-                                               if ((sizeof(long) ==4) && 
(stmt->stmt->fields[i].type == MYSQL_TYPE_LONG) 
+                                               if ((stmt->stmt->fields[i].type 
== MYSQL_TYPE_LONG) 
                                                    && 
(stmt->stmt->fields[i].flags & UNSIGNED_FLAG)) 
                                                {
                                                        /* unsigned int (11) */
@@ -684,7 +684,11 @@
                                                                break;
                                                        }
                                                }
-                                               ZVAL_LONG(stmt->result.vars[i], 
*(int *)stmt->result.buf[i].val);
+                                               if (stmt->stmt->fields[i].flags 
& UNSIGNED_FLAG) { 
+                                                       
ZVAL_LONG(stmt->result.vars[i], *(unsigned int *)stmt->result.buf[i].val);
+                                               } else {
+                                                       
ZVAL_LONG(stmt->result.vars[i], *(int *)stmt->result.buf[i].val);
+                                               };
                                                break;
                                        case IS_DOUBLE:
                                                memcpy(&dval, 
stmt->result.buf[i].val, sizeof(dval));

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

Reply via email to