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