Commit a3675440b3b for php
commit a3675440b3b47f022f724d296e9bfadee40ec093
Author: Daniel Scherzer <daniel.e.scherzer@gmail.com>
Date: Mon Oct 5 11:16:15 2026 -0700
[`%pS` migration] Use `%pS` in ext/mysqli (#23159)
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index 5e6319ae77c..374a7f67656 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -254,8 +254,8 @@ zval *mysqli_write_property(zend_object *object, zend_string *name, zval *value,
const mysqli_prop_handler *hnd = zend_hash_find_ptr(obj->prop_handler, name);
if (hnd) {
if (!hnd->write_func) {
- zend_throw_error(NULL, "Cannot write read-only property %s::$%s",
- ZSTR_VAL(object->ce->name), ZSTR_VAL(name));
+ zend_throw_error(NULL, "Cannot write read-only property %pS::$%pS",
+ object->ce->name, name);
return &EG(error_zval);
}
@@ -400,7 +400,7 @@ static MYSQLND *mysqli_convert_zv_to_mysqlnd(zval * zv)
mysqli_object *intern = Z_MYSQLI_P(zv);
if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {
/* We know that we have a mysqli object, so this failure should be emitted */
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(intern->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", intern->zo.ce->name);
return NULL;
}
mysql = (MY_MYSQL *)(my_res->ptr);
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index 2f4b6006821..f25f83a0b6b 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -538,13 +538,13 @@ PHP_FUNCTION(mysqli_fetch_object)
ce = zend_standard_class_def;
}
if (UNEXPECTED(ce->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_TRAIT|ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS))) {
- zend_throw_error(NULL, "Class %s cannot be instantiated", ZSTR_VAL(ce->name));
+ zend_throw_error(NULL, "Class %pS cannot be instantiated", ce->name);
RETURN_THROWS();
}
if (!ce->constructor && ctor_params && zend_hash_num_elements(ctor_params) > 0) {
zend_argument_value_error(ERROR_ARG_POS(3),
- "must be empty when the specified class (%s) does not have a constructor",
- ZSTR_VAL(ce->name)
+ "must be empty when the specified class (%pS) does not have a constructor",
+ ce->name
);
RETURN_THROWS();
}
@@ -703,12 +703,12 @@ static zend_result mysqlnd_zval_array_to_mysqlnd_array(zval *in_array, MYSQLND *
MYSQLI_RESOURCE *my_res;
mysqli_object *intern = Z_MYSQLI_P(elem);
if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(intern->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", intern->zo.ce->name);
return FAILURE;
}
mysql = (MY_MYSQL*) my_res->ptr;
if (my_res->status < MYSQLI_STATUS_VALID) {
- zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(intern->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is not fully initialized", intern->zo.ce->name);
return FAILURE;
}
(*out_array)[current++] = mysql->mysql;
@@ -737,7 +737,7 @@ static zend_result mysqlnd_zval_array_from_mysqlnd_array(MYSQLND **in_array, zva
MYSQLI_RESOURCE *my_res;
mysqli_object *intern = Z_MYSQLI_P(elem);
if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(intern->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", intern->zo.ce->name);
return FAILURE;
}
mysql = (MY_MYSQL *) my_res->ptr;
diff --git a/ext/mysqli/mysqli_prop.c b/ext/mysqli/mysqli_prop.c
index 39446c62dda..2d21886e06d 100644
--- a/ext/mysqli/mysqli_prop.c
+++ b/ext/mysqli/mysqli_prop.c
@@ -35,7 +35,7 @@
MYSQL *p; \
if (!obj->ptr || !(MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr) { \
if (!quiet) { \
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name); \
} \
return FAILURE; \
} else { \
@@ -43,7 +43,7 @@ if (!obj->ptr || !(MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr) { \
p = (MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->mysql;\
if (!p) { \
if (!quiet) { \
- zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(obj->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is not fully initialized", obj->zo.ce->name); \
} \
return FAILURE; \
} \
@@ -53,7 +53,7 @@ if (!obj->ptr || !(MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr) { \
MYSQL_RES *p; \
if (!obj->ptr) { \
if (!quiet) { \
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name); \
} \
return FAILURE; \
} else { \
@@ -65,7 +65,7 @@ if (!obj->ptr) { \
MYSQL_STMT *p; \
if (!obj->ptr) { \
if (!quiet) { \
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name); \
} \
return FAILURE; \
} else { \
diff --git a/ext/mysqli/mysqli_warning.c b/ext/mysqli/mysqli_warning.c
index a276ccf0b1f..96fcb0bbad8 100644
--- a/ext/mysqli/mysqli_warning.c
+++ b/ext/mysqli/mysqli_warning.c
@@ -140,7 +140,7 @@ static zend_result mysqli_warning_message(mysqli_object *obj, zval *retval, bool
if (!obj->ptr || !((MYSQLI_RESOURCE *)(obj->ptr))->ptr) {
if (!quiet) {
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name);
}
return FAILURE;
@@ -160,7 +160,7 @@ static zend_result mysqli_warning_sqlstate(mysqli_object *obj, zval *retval, boo
if (!obj->ptr || !((MYSQLI_RESOURCE *)(obj->ptr))->ptr) {
if (!quiet) {
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name);
}
return FAILURE;
@@ -180,7 +180,7 @@ static zend_result mysqli_warning_errno(mysqli_object *obj, zval *retval, bool q
if (!obj->ptr || !((MYSQLI_RESOURCE *)(obj->ptr))->ptr) {
if (!quiet) {
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(obj->zo.ce->name));
+ zend_throw_error(NULL, "%pS object is already closed", obj->zo.ce->name);
}
return FAILURE;
diff --git a/ext/mysqli/php_mysqli_structs.h b/ext/mysqli/php_mysqli_structs.h
index 8ccead1a751..c6151065add 100644
--- a/ext/mysqli/php_mysqli_structs.h
+++ b/ext/mysqli/php_mysqli_structs.h
@@ -160,12 +160,12 @@ extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * resul
MYSQLI_RESOURCE *my_res; \
mysqli_object *intern = Z_MYSQLI_P(__id); \
if (!(my_res = (MYSQLI_RESOURCE *)intern->ptr)) {\
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(intern->zo.ce->name));\
+ zend_throw_error(NULL, "%pS object is already closed", intern->zo.ce->name);\
RETURN_THROWS();\
}\
__ptr = (__type)my_res->ptr; \
if (my_res->status < __check) { \
- zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(intern->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is not fully initialized", intern->zo.ce->name); \
RETURN_THROWS();\
}\
}
@@ -174,12 +174,12 @@ extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * resul
{ \
MYSQLI_RESOURCE *my_res; \
if (!(my_res = (MYSQLI_RESOURCE *)(__obj->ptr))) {\
- zend_throw_error(NULL, "%s object is already closed", ZSTR_VAL(intern->zo.ce->name));\
+ zend_throw_error(NULL, "%pS object is already closed", intern->zo.ce->name);\
return;\
}\
__ptr = (__type)my_res->ptr; \
if (my_res->status < __check) { \
- zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(intern->zo.ce->name)); \
+ zend_throw_error(NULL, "%pS object is not fully initialized", intern->zo.ce->name); \
return;\
}\
}
@@ -188,7 +188,7 @@ extern void php_mysqli_fetch_into_hash_aux(zval *return_value, MYSQL_RES * resul
{ \
MYSQLI_FETCH_RESOURCE((__ptr), MY_MYSQL *, (__id), (__check)); \
if (!(__ptr)->mysql) { \
- zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(Z_OBJCE_P(__id)->name)); \
+ zend_throw_error(NULL, "%pS object is not fully initialized", Z_OBJCE_P(__id)->name); \
RETURN_THROWS(); \
} \
}