#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;
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);
}
/* }}} */
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) {
}
/* }}} */
-/* {{{ 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;
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);
}
/* }}} */
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);
}
/* }}} */
}
/* }}} */
+/* {{{ 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;
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)
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)
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;
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;
+ }
}
/* }}} */