georg           Fri Feb 14 13:17:25 2003 EDT

  Modified files:              
    /php4/ext/mysqli    mysqli_api.c 
  Log:
  fixed a bug in mysqli_fetch
  removed c++ comment (thx to Jani :)
  fixed compiler warning
  
  
Index: php4/ext/mysqli/mysqli_api.c
diff -u php4/ext/mysqli/mysqli_api.c:1.6 php4/ext/mysqli/mysqli_api.c:1.7
--- php4/ext/mysqli/mysqli_api.c:1.6    Fri Feb 14 11:49:09 2003
+++ php4/ext/mysqli/mysqli_api.c        Fri Feb 14 13:17:25 2003
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_api.c,v 1.6 2003/02/14 16:49:09 iliaa Exp $ 
+  $Id: mysqli_api.c,v 1.7 2003/02/14 18:17:25 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -282,6 +282,8 @@
 
                        case MYSQL_TYPE_LONGLONG:
                                stmt->bind[ofs].type = IS_STRING; 
+
+                               /* TODO: change and check buflen when bug #74 is fixed 
+*/
                                stmt->bind[ofs].buflen = sizeof(my_ulonglong); 
                                stmt->bind[ofs].buffer = (char 
*)emalloc(stmt->bind[ofs].buflen);
                                bind[ofs].buffer_type = MYSQL_TYPE_LONGLONG;
@@ -298,7 +300,7 @@
                        case MYSQL_TYPE_BLOB:
                        case MYSQL_TYPE_TIMESTAMP:
                                stmt->bind[ofs].type = IS_STRING; 
-                               stmt->bind[ofs].buflen = (stmt->stmt->fields) ? 
stmt->stmt->fields[ofs].length + 1: 250;
+                               stmt->bind[ofs].buflen = (stmt->stmt->fields) ? 
+stmt->stmt->fields[ofs].length + 1: 256;
                                stmt->bind[ofs].buffer = (char 
*)emalloc(stmt->bind[ofs].buflen);
                                bind[ofs].buffer_type = MYSQL_TYPE_STRING;
                                bind[ofs].buffer = stmt->bind[ofs].buffer;
@@ -307,7 +309,6 @@
                                bind[ofs].length = &stmt->bind[ofs].buflen;
                                break;
                }
-//             bind[ofs].length = &stmt->bind[ofs].buflen;
        }
 
        if (mysql_bind_result(stmt->stmt, bind)) {
@@ -598,7 +599,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool mysqli_fetch(resource stmt)
+/* {{{ proto int mysqli_fetch(resource stmt)
 */
 PHP_FUNCTION(mysqli_fetch)
 {
@@ -622,39 +623,38 @@
        }
        
        if (!(ret = mysql_fetch(stmt->stmt))) {
-               RETURN_FALSE;
-       }
 
-       for (i = 0; i < stmt->var_cnt; i++) {
-               if (!stmt->is_null[i]) {
-                       switch (stmt->bind[i].type) {
-                               case IS_LONG:
-                                       stmt->vars[i]->type = IS_LONG;
-                                       break;
-                               case IS_DOUBLE:
-                                       stmt->vars[i]->type = IS_DOUBLE;
-                                       break;
-                               case IS_STRING:
-                                       if (stmt->stmt->bind[i].buffer_type == 
MYSQL_TYPE_LONGLONG) {
-                                               char tmp[50];
-                                               my_ulonglong lval;
-                                               memcpy (&lval, stmt->bind[i].buffer, 
sizeof(my_ulonglong));
-                                               if (lval != (long)lval) {
-                                                       sprintf((char *)&tmp, "%lld", 
lval);
-                                                       ZVAL_STRING(stmt->vars[i], 
tmp, 1);
+               for (i = 0; i < stmt->var_cnt; i++) {
+                       if (!stmt->is_null[i]) {
+                               switch (stmt->bind[i].type) {
+                                       case IS_LONG:
+                                               stmt->vars[i]->type = IS_LONG;
+                                               break;
+                                       case IS_DOUBLE:
+                                               stmt->vars[i]->type = IS_DOUBLE;
+                                               break;
+                                       case IS_STRING:
+                                               if (stmt->stmt->bind[i].buffer_type == 
+MYSQL_TYPE_LONGLONG) {
+                                                       char tmp[50];
+                                                       my_ulonglong lval;
+                                                       memcpy (&lval, 
+stmt->bind[i].buffer, sizeof(my_ulonglong));
+                                                       if (lval != (long)lval) {
+                                                               sprintf((char *)&tmp, 
+"%lld", lval);
+                                                               
+ZVAL_STRING(stmt->vars[i], tmp, 1);
+                                                       } else {
+                                                               
+ZVAL_LONG(stmt->vars[i], lval);
+                                                       }
                                                } else {
-                                                       ZVAL_LONG(stmt->vars[i], lval);
+                                                       stmt->bind[i].type = IS_STRING;
+                                                       ZVAL_STRING(stmt->vars[i], 
+stmt->bind[i].buffer, 1);
                                                }
-                                       } else {
-                                               stmt->bind[i].type = IS_STRING;
-                                               ZVAL_STRING(stmt->vars[i], 
stmt->bind[i].buffer, 1);
-                                       }
-                                       break;
-                               default:
-                                       break;  
+                                               break;
+                                       default:
+                                               break;  
+                               }
+                       } else {
+                               stmt->vars[i]->type = IS_NULL;
                        }
-               } else {
-                       stmt->vars[i]->type = IS_NULL;
                }
        }
 
@@ -1266,7 +1266,7 @@
 
        if 
(mysql_real_connect(mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
                /* Save error messages */
-               php_mysqli_set_error(mysql_errno(mysql), mysql_error(mysql) TSRMLS_CC);
+               php_mysqli_set_error(mysql_errno(mysql), (char *)mysql_error(mysql) 
+TSRMLS_CC);
 
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", mysql_error(mysql));
                RETURN_FALSE;



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

Reply via email to