@@ -2319,20 +2319,18 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
2319
2319
zval * mysql_stmt ;
2320
2320
unsigned long value = 0 ;
2321
2321
zend_long attr ;
2322
+ int rc ;
2322
2323
2323
2324
if (zend_parse_method_parameters (ZEND_NUM_ARGS (), getThis (), "Ol" , & mysql_stmt , mysqli_stmt_class_entry , & attr ) == FAILURE ) {
2324
2325
RETURN_THROWS ();
2325
2326
}
2326
2327
MYSQLI_FETCH_RESOURCE_STMT (stmt , mysql_stmt , MYSQLI_STATUS_VALID );
2327
2328
2328
- switch (attr ) {
2329
+ if (attr != STMT_ATTR_CURSOR_TYPE && attr != STMT_ATTR_PREFETCH_ROWS
2329
2330
#if MYSQL_VERSION_ID >= 50107
2330
- case STMT_ATTR_UPDATE_MAX_LENGTH :
2331
+ && attr != STMT_ATTR_UPDATE_MAX_LENGTH
2331
2332
#endif
2332
- case STMT_ATTR_CURSOR_TYPE :
2333
- case STMT_ATTR_PREFETCH_ROWS :
2334
- break ;
2335
- default :
2333
+ ) {
2336
2334
zend_argument_value_error (ERROR_ARG_POS (2 ), "must be one of "
2337
2335
#if MYSQL_VERSION_ID >= 50107
2338
2336
"MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH, "
@@ -2341,9 +2339,12 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
2341
2339
RETURN_THROWS ();
2342
2340
}
2343
2341
2344
- /* Success corresponds to 0 return value and a non-zero value
2345
- * should only happen if the attr/option is unknown */
2346
- ZEND_ASSERT (mysql_stmt_attr_get (stmt -> stmt , attr , & value ) == 0 );
2342
+ if ((rc = mysql_stmt_attr_get (stmt -> stmt , attr , & value ))) {
2343
+ /* Success corresponds to 0 return value and a non-zero value
2344
+ * should only happen if the attr/option is unknown */
2345
+ ZEND_UNREACHABLE ();
2346
+ }
2347
+
2347
2348
2348
2349
#if MYSQL_VERSION_ID >= 50107
2349
2350
if (attr == STMT_ATTR_UPDATE_MAX_LENGTH )
0 commit comments