diff options
author | Georg Richter <georg@php.net> | 2005-06-26 04:44:03 +0000 |
---|---|---|
committer | Georg Richter <georg@php.net> | 2005-06-26 04:44:03 +0000 |
commit | 01108f7879c7d21389f3f5fcd84bf7ca77003c69 (patch) | |
tree | 03f0df44043f537e8b98ff1f2876f811b600754a | |
parent | f63e56dc1a98789ed232866003cd31b5240ff025 (diff) | |
download | php-git-01108f7879c7d21389f3f5fcd84bf7ca77003c69.tar.gz |
fix for #33474
-rw-r--r-- | ext/mysqli/mysqli_nonapi.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index 77a3eb4262..683638b8e9 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -251,6 +251,54 @@ PHP_FUNCTION(mysqli_query) } /* }}} */ +/* {{{ proto object mysqli_get_warnings(object link) */ +PHP_FUNCTION(mysqli_get_warnings) +{ + MY_MYSQL *mysql; + zval *mysql_link; + MYSQLI_RESOURCE *mysqli_resource; + MYSQLI_WARNING *w; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link"); + + if (mysql_warning_count(mysql->mysql)) { + w = php_get_warnings(mysql->mysql); + } else { + RETURN_FALSE; + } + mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); + mysqli_resource->ptr = mysqli_resource->info = (void *)w; + MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); +} +/* }}} */ + +/* {{{ proto object mysqli_get_warnings(object link) */ +PHP_FUNCTION(mysqli_stmt_get_warnings) +{ + MY_STMT *stmt; + zval *stmt_link; + MYSQLI_RESOURCE *mysqli_resource; + MYSQLI_WARNING *w; + + if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &stmt_link, mysqli_stmt_class_entry) == FAILURE) { + return; + } + MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, "mysqli_stmt"); + + if (mysql_warning_count(stmt->stmt->mysql)) { + w = php_get_warnings(stmt->stmt->mysql); + } else { + RETURN_FALSE; + } + mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); + mysqli_resource->ptr = mysqli_resource->info = (void *)w; + MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); +} +/* }}} */ + #ifdef HAVE_MYSQLI_SET_CHARSET /* {{{ proto bool mysqli_set_charset(object link, string csname) sets client character set */ |