cvs: php4 /ext/mysqli mysqli_api.c mysqli_fe.c mysqli_nonapi.c php_mysqli.h

From: Date: Sun, 16 Feb 2003 12:03:37 +0000
Subject: cvs: php4 /ext/mysqli mysqli_api.c mysqli_fe.c mysqli_nonapi.c php_mysqli.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-18878@lists.php.net to get a copy of this message
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 <georg@php.net> | +----------------------------------------------------------------------+ - $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 <georg@php.net> | +----------------------------------------------------------------------+ - $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 <georg@php.net> | +----------------------------------------------------------------------+ - $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 <georg@php.net> | +----------------------------------------------------------------------+ - $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);

« previous php.cvs (#18878) next »