georg           Sun Feb 16 07:03:37 2003 EDT

  Modified files:              
    /php4/ext/mysqli    mysqli_api.c mysqli_fe.c mysqli_nonapi.c 
                        php_mysqli.h 
  Log:
  added new function mysqli_stmt_affected_rows
  added bigint support for mysqli_affected_rows
  fixed memleak in mysqli_prepare (stmt->is_null)
  fixed return type for mysqli_connect
  
  
Index: php4/ext/mysqli/mysqli_api.c
diff -u php4/ext/mysqli/mysqli_api.c:1.9 php4/ext/mysqli/mysqli_api.c:1.10
--- php4/ext/mysqli/mysqli_api.c:1.9    Fri Feb 14 15:14:44 2003
+++ php4/ext/mysqli/mysqli_api.c        Sun Feb 16 07:03:37 2003
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_api.c,v 1.9 2003/02/14 20:14:44 iliaa Exp $ 
+  $Id: mysqli_api.c,v 1.10 2003/02/16 12:03:37 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -30,12 +30,14 @@
 #include "php_mysqli.h"
 
 
-/* {{{ proto long mysqli_affected_rows(resource link)
+/* {{{ proto mixed mysqli_affected_rows(resource link)
 */
 PHP_FUNCTION(mysqli_affected_rows)
 {
-       MYSQL *mysql;
-       zval  *mysql_link;
+       MYSQL                   *mysql;
+       zval                    *mysql_link;
+       my_ulonglong    rc;
+       char                    ret[40];
 
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", 
&mysql_link, mysqli_link_class_entry) == FAILURE) {
                return;
@@ -43,7 +45,12 @@
 
        MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link"); 
 
-       RETURN_LONG(mysql_affected_rows(mysql));
+       rc = mysql_affected_rows(mysql);
+       if (rc != (long)rc) {
+               sprintf((char *)&ret, "%llu", rc);
+               RETURN_STRING(ret,1);
+       } 
+       RETURN_LONG(rc);
 }
 /* }}} */
 
@@ -112,7 +119,7 @@
                efree(args);
                RETURN_FALSE;
        }
-
+       stmt->is_null = ecalloc(num_vars, sizeof(char));
        bind = (MYSQL_BIND *)ecalloc(num_vars, sizeof(MYSQL_BIND));
 
        for (i=start; i < num_vars * 2 + start; i+=2) {
@@ -988,14 +995,14 @@
 }
 /* }}} */
 
-/* {{{ proto int mysqli_insert_id(resource link)
+/* {{{ proto mixed mysqli_insert_id(resource link)
 */
 PHP_FUNCTION(mysqli_insert_id)
 {
-       MYSQL *mysql;
-       my_ulonglong rc;
-       char  ret[50];
-       zval  *mysql_link;
+       MYSQL                   *mysql;
+       my_ulonglong    rc;
+       char                    ret[50];
+       zval                    *mysql_link;
 
        if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", 
&mysql_link, mysqli_link_class_entry) == FAILURE) {
                return;
@@ -1004,11 +1011,10 @@
        rc = mysql_insert_id(mysql);
 
        if (rc != (long)rc) {
-               sprintf((char *)&ret, "%lld", rc);
+               sprintf((char *)&ret, "%llu", rc);
                RETURN_STRING(ret,1);
-       } else {
-               RETURN_LONG(rc);
-       }
+       } 
+       RETURN_LONG(rc);
 }
 /* }}} */
 
@@ -1181,10 +1187,6 @@
                RETURN_FALSE;
        }
 
-       if (mysql_param_count(stmt->stmt)) {
-               stmt->is_null = (char *)emalloc(mysql_param_count(stmt->stmt));
-       }
-
        MYSQLI_RETURN_RESOURCE(stmt, mysqli_stmt_class_entry);
 }
 /* }}} */
@@ -1495,9 +1497,34 @@
 }
 /* }}} */
 
+/* {{{ proto mixed mysqli_stmt_affected_rows(object stmt)
+*/
+PHP_FUNCTION(mysqli_stmt_affected_rows)
+{
+       STMT                    *stmt;
+       zval                    *mysql_stmt;
+       my_ulonglong    rc;
+       char                    ret[50];
+
+       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", 
+&mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
+               return;
+       }
+       MYSQLI_FETCH_RESOURCE(stmt, STMT *, &mysql_stmt, "mysqli_stmt");
+
+       rc = mysql_stmt_affected_rows(stmt->stmt);
+       if (rc != (long)rc) {
+               sprintf((char *)&ret, "%llu", rc);
+               RETURN_STRING(ret, 1); 
+       }
+
+       RETURN_LONG(rc);
+}
+/* }}} */
+
 /* {{{ proto bool mysqli_stmt_close(resource stmt) 
    close statement */
-PHP_FUNCTION(mysqli_stmt_close) {
+PHP_FUNCTION(mysqli_stmt_close)
+{
        STMT    *stmt;
        zval    *mysql_stmt;
 
Index: php4/ext/mysqli/mysqli_fe.c
diff -u php4/ext/mysqli/mysqli_fe.c:1.4 php4/ext/mysqli/mysqli_fe.c:1.5
--- php4/ext/mysqli/mysqli_fe.c:1.4     Wed Feb 12 19:11:17 2003
+++ php4/ext/mysqli/mysqli_fe.c Sun Feb 16 07:03:37 2003
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_fe.c,v 1.4 2003/02/13 00:11:17 georg Exp $ 
+  $Id: mysqli_fe.c,v 1.5 2003/02/16 12:03:37 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -105,6 +105,7 @@
        PHP_FE(mysqli_slave_query,                                                     
 NULL)
        PHP_FE(mysqli_ssl_set,                                                         
 NULL)
        PHP_FE(mysqli_stat,                                                            
         NULL)
+       PHP_FE(mysqli_stmt_affected_rows,                                       NULL)
        PHP_FE(mysqli_stmt_close,                                                      
 NULL)
        PHP_FE(mysqli_stmt_errno,                                                      
 NULL)
        PHP_FE(mysqli_stmt_error,                                                      
 NULL)
@@ -211,6 +212,7 @@
        PHP_FALIAS(fetch,mysqli_fetch,NULL)
        PHP_FALIAS(param_count,mysqli_param_count,NULL)
        PHP_FALIAS(send_long_data,mysqli_send_long_data,NULL)
+       PHP_FALIAS(affected_rows,mysqli_stmt_affected_rows,NULL)
        PHP_FALIAS(close,mysqli_stmt_close,NULL)
        PHP_FALIAS(errno,mysqli_stmt_errno,NULL)
        PHP_FALIAS(error,mysqli_stmt_error,NULL)
Index: php4/ext/mysqli/mysqli_nonapi.c
diff -u php4/ext/mysqli/mysqli_nonapi.c:1.4 php4/ext/mysqli/mysqli_nonapi.c:1.5
--- php4/ext/mysqli/mysqli_nonapi.c:1.4 Fri Feb 14 13:27:20 2003
+++ php4/ext/mysqli/mysqli_nonapi.c     Sun Feb 16 07:03:37 2003
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: mysqli_nonapi.c,v 1.4 2003/02/14 18:27:20 iliaa Exp $ 
+  $Id: mysqli_nonapi.c,v 1.5 2003/02/16 12:03:37 georg Exp $ 
 */
 
 #ifdef HAVE_CONFIG_H
@@ -34,6 +34,7 @@
 PHP_FUNCTION(mysqli_connect)
 {
        MYSQL *mysql;
+       zval  *object = getThis();
        char *hostname = NULL, *username=NULL, *passwd=NULL, *dbname=NULL, 
*socket=NULL;
        unsigned int hostname_len, username_len, passwd_len, dbname_len, socket_len;
        unsigned int port=0;
@@ -69,7 +70,11 @@
                RETURN_FALSE;
        }
 
-       MYSQLI_RETURN_RESOURCE(mysql, mysqli_link_class_entry); 
+       if (!object) {
+               MYSQLI_RETURN_RESOURCE(mysql, mysqli_link_class_entry); 
+       } else {
+               ((mysqli_object *) zend_object_store_get_object(object 
+TSRMLS_CC))->ptr = mysql;
+       }
 }
 /* }}} */
 
Index: php4/ext/mysqli/php_mysqli.h
diff -u php4/ext/mysqli/php_mysqli.h:1.6 php4/ext/mysqli/php_mysqli.h:1.7
--- php4/ext/mysqli/php_mysqli.h:1.6    Fri Feb 14 16:27:13 2003
+++ php4/ext/mysqli/php_mysqli.h        Sun Feb 16 07:03:37 2003
@@ -15,7 +15,7 @@
   | Author: Georg Richter <[EMAIL PROTECTED]>                                |
   +----------------------------------------------------------------------+
 
-  $Id: php_mysqli.h,v 1.6 2003/02/14 21:27:13 iliaa Exp $ 
+  $Id: php_mysqli.h,v 1.7 2003/02/16 12:03:37 georg Exp $ 
 */
 
 /* A little hack to prevent build break, when mysql is used together with
@@ -216,6 +216,7 @@
 PHP_FUNCTION(mysqli_slave_query);
 PHP_FUNCTION(mysqli_ssl_set);
 PHP_FUNCTION(mysqli_stat);
+PHP_FUNCTION(mysqli_stmt_affected_rows);
 PHP_FUNCTION(mysqli_stmt_close);
 PHP_FUNCTION(mysqli_stmt_errno);
 PHP_FUNCTION(mysqli_stmt_error);



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

Reply via email to