@@ -2292,20 +2292,18 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
2292
2292
zval * mysql_stmt ;
2293
2293
unsigned long value = 0 ;
2294
2294
zend_long attr ;
2295
+ int rc ;
2295
2296
2296
2297
if (zend_parse_method_parameters (ZEND_NUM_ARGS (), getThis (), "Ol" , & mysql_stmt , mysqli_stmt_class_entry , & attr ) == FAILURE ) {
2297
2298
RETURN_THROWS ();
2298
2299
}
2299
2300
MYSQLI_FETCH_RESOURCE_STMT (stmt , mysql_stmt , MYSQLI_STATUS_VALID );
2300
2301
2301
- switch (attr ) {
2302
+ if (attr != STMT_ATTR_CURSOR_TYPE && attr != STMT_ATTR_PREFETCH_ROWS
2302
2303
#if MYSQL_VERSION_ID >= 50107
2303
- case STMT_ATTR_UPDATE_MAX_LENGTH :
2304
+ && attr != STMT_ATTR_UPDATE_MAX_LENGTH
2304
2305
#endif
2305
- case STMT_ATTR_CURSOR_TYPE :
2306
- case STMT_ATTR_PREFETCH_ROWS :
2307
- break ;
2308
- default :
2306
+ ) {
2309
2307
zend_argument_value_error (ERROR_ARG_POS (2 ), "must be one of "
2310
2308
#if MYSQL_VERSION_ID >= 50107
2311
2309
"MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, "
@@ -2314,9 +2312,12 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
2314
2312
RETURN_THROWS ();
2315
2313
}
2316
2314
2317
- /* Success corresponds to 0 return value and a non-zero value
2318
- * should only happen if the attr/option is unknown */
2319
- ZEND_ASSERT (mysql_stmt_attr_get (stmt -> stmt , attr , & value ) == 0 );
2315
+ if ((rc = mysql_stmt_attr_get (stmt -> stmt , attr , & value ))) {
2316
+ /* Success corresponds to 0 return value and a non-zero value
2317
+ * should only happen if the attr/option is unknown */
2318
+ ZEND_UNREACHABLE ();
2319
+ }
2320
+
2320
2321
2321
2322
#if MYSQL_VERSION_ID >= 50107
2322
2323
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH )
0 commit comments