Skip to content

Commit 84f457e

Browse files
author
dome
committed
Add patch: last_query_error property to mysqli to store failed query
1 parent c1533ea commit 84f457e

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

mysqli_last_query_error.patch

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
From c1533ea2ebf4e712383616312dc4b260aa3b3d95 Mon Sep 17 00:00:00 2001
2+
From: dome <[email protected]>
3+
Date: Sun, 1 Jun 2025 13:19:43 +0200
4+
Subject: [PATCH] Add last_query_error property to mysqli for query error
5+
tracking
6+
7+
---
8+
ext/mysqli/mysqli.c | 3 +++
9+
ext/mysqli/mysqli_nonapi.c | 4 ++++
10+
2 files changed, 7 insertions(+)
11+
12+
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
13+
index a8a75eff70..0d063e624e 100644
14+
--- a/ext/mysqli/mysqli.c
15+
+++ b/ext/mysqli/mysqli.c
16+
@@ -535,6 +535,9 @@ PHP_MINIT_FUNCTION(mysqli)
17+
18+
mysqlnd_reverse_api_register_api(&mysqli_reverse_api);
19+
20+
+ /* Declare 'last_query_error' property to store last failed query */
21+
+ zend_declare_property_null(mysqli_link_class_entry, "last_query_error", sizeof("last_query_error")-1, ZEND_ACC_PUBLIC);
22+
+
23+
return SUCCESS;
24+
}
25+
/* }}} */
26+
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
27+
index e0e14eeccb..4e210a32ea 100644
28+
--- a/ext/mysqli/mysqli_nonapi.c
29+
+++ b/ext/mysqli/mysqli_nonapi.c
30+
@@ -603,6 +603,8 @@ PHP_FUNCTION(mysqli_query)
31+
if (resultmode & MYSQLI_ASYNC) {
32+
if (mysqli_async_query(mysql->mysql, query, query_len)) {
33+
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
34+
+ /* Save failed query string to 'last_query_error' */
35+
+ zend_update_property_string(Z_OBJCE_P(ZEND_THIS), Z_OBJ_P(ZEND_THIS), "last_query_error", sizeof("last_query_error")-1, query);
36+
RETURN_FALSE;
37+
}
38+
mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC;
39+
@@ -611,6 +613,8 @@ PHP_FUNCTION(mysqli_query)
40+
41+
if (mysql_real_query(mysql->mysql, query, query_len)) {
42+
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
43+
+ /* Save failed query string to 'last_query_error' */
44+
+ zend_update_property_string(Z_OBJCE_P(ZEND_THIS), Z_OBJ_P(ZEND_THIS), "last_query_error", sizeof("last_query_error")-1, query);
45+
RETURN_FALSE;
46+
}
47+
48+
--
49+
2.43.0
50+

0 commit comments

Comments
 (0)