summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--ext/mysqli/mysqli_api.c20
2 files changed, 14 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 393e0ce40b..c91b64497f 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,8 @@ PHP NEWS
- Fixed a bug in mysqli_stmt_execute() (type conversion with NULL values). (Georg)
- Fixed segfault in mysqli_fetch_field_direct() when invalid field offset
is passed. (Tony)
+- Fixed bug #31710 (Wrong return values for mysqli_autocommit/commit/rollback).
+ (Georg)
- Fixed bug #31684 (dio_tcsetattr(): misconfigured termios settings).
(elod at itfais dot com)
- Fixed bug #31699 (unserialize() float problem on non-English locales). (Ilia)
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index f403105a92..263b362a28 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -54,7 +54,6 @@ PHP_FUNCTION(mysqli_autocommit)
{
MY_MYSQL *mysql;
zval *mysql_link;
- unsigned long rc;
unsigned long automode;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ob", &mysql_link, mysqli_link_class_entry, &automode) == FAILURE) {
@@ -62,9 +61,10 @@ PHP_FUNCTION(mysqli_autocommit)
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
- rc = (long) mysql_autocommit(mysql->mysql, automode);
-
- RETURN_BOOL(rc);
+ if (mysql_autocommit(mysql->mysql, automode)) {
+ RETURN_FALSE;
+ }
+ RETURN_TRUE;
}
/* }}} */
@@ -418,14 +418,15 @@ PHP_FUNCTION(mysqli_commit)
{
MY_MYSQL *mysql;
zval *mysql_link;
- ulong rc;
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");
- rc = mysql_commit(mysql->mysql);
- RETURN_BOOL(rc);
+ if (mysql_commit(mysql->mysql)) {
+ RETURN_FALSE;
+ }
+ RETURN_TRUE;
}
/* }}} */
@@ -1398,7 +1399,10 @@ PHP_FUNCTION(mysqli_rollback)
}
MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
- RETURN_BOOL(mysql_rollback(mysql->mysql));
+ if (mysql_rollback(mysql->mysql)) {
+ RETURN_FALSE;
+ }
+ RETURN_TRUE;
}
/* }}} */