summaryrefslogtreecommitdiff
path: root/ext/mysqli/mysqli_api.c
diff options
context:
space:
mode:
authorDharman <tekiela246@gmail.com>2020-09-17 23:45:17 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-10-28 11:33:50 +0100
commit990bb34891c83d12c5129fd781893704f948f2f4 (patch)
tree3aef409f472a3024c60ca4b8b4edf9cb03564181 /ext/mysqli/mysqli_api.c
parentfe55fe1f54958edf273ea37b580c04f0c85903e3 (diff)
downloadphp-git-990bb34891c83d12c5129fd781893704f948f2f4.tar.gz
Handle mysqli errors in more cases
Report errors autocommit, commit, rollback and mysqli_stmt_attr_set. Additionally, copy the error from conn to stmt when preparing fails, so these errors are also handled by mysqli_stmt_prepare. Closes GH-6157.
Diffstat (limited to 'ext/mysqli/mysqli_api.c')
-rw-r--r--ext/mysqli/mysqli_api.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index e164e701b4..9a54171b30 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -171,6 +171,7 @@ PHP_FUNCTION(mysqli_autocommit)
MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID);
if (mysql_autocommit(mysql->mysql, (my_bool)automode)) {
+ MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -754,6 +755,7 @@ PHP_FUNCTION(mysqli_commit)
#else
if (FAIL == mysqlnd_commit(mysql->mysql, flags, name)) {
#endif
+ MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -1989,6 +1991,7 @@ PHP_FUNCTION(mysqli_rollback)
#else
if (FAIL == mysqlnd_rollback(mysql->mysql, flags, name)) {
#endif
+ MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
RETURN_FALSE;
}
RETURN_TRUE;
@@ -2350,6 +2353,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
#else
if (FAIL == mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
#endif
+ MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
RETURN_FALSE;
}
RETURN_TRUE;