@@ -225,10 +225,15 @@ MYSQLND_METHOD(mysqlnd_stmt, next_result)(MYSQLND_STMT * s TSRMLS_DC)
225
225
DBG_RETURN (FAIL );
226
226
}
227
227
228
+ DBG_INF_FMT ("server_status=%u cursor=%u" , stmt -> upsert_status .server_status , stmt -> upsert_status .server_status & SERVER_STATUS_CURSOR_EXISTS );
229
+ DBG_INF_FMT ("server_status=%u cursor=%u" , conn -> upsert_status .server_status , conn -> upsert_status .server_status & SERVER_STATUS_CURSOR_EXISTS );
230
+
228
231
/* Free space for next result */
229
232
s -> m -> free_stmt_content (s TSRMLS_CC );
230
-
231
- DBG_RETURN (s -> m -> parse_execute_response (s TSRMLS_CC ));
233
+ {
234
+ enum_func_status ret = s -> m -> parse_execute_response (s TSRMLS_CC );
235
+ DBG_RETURN (ret );
236
+ }
232
237
}
233
238
/* }}} */
234
239
@@ -556,6 +561,14 @@ mysqlnd_stmt_execute_parse_response(MYSQLND_STMT * const s TSRMLS_DC)
556
561
}
557
562
}
558
563
}
564
+ #ifndef MYSQLND_DONT_SKIP_OUT_PARAMS_RESULTSET
565
+ if (stmt -> upsert_status .server_status & SERVER_PS_OUT_PARAMS ) {
566
+ s -> m -> free_stmt_content (s TSRMLS_CC );
567
+ DBG_INF ("PS OUT Variable RSet, skipping" );
568
+ /* OUT params result set. Skip for now to retain compatibility */
569
+ ret = mysqlnd_stmt_execute_parse_response (s TSRMLS_CC );
570
+ }
571
+ #endif
559
572
560
573
DBG_INF (ret == PASS ? "PASS" :"FAIL" );
561
574
DBG_RETURN (ret );
@@ -701,6 +714,8 @@ MYSQLND_METHOD(mysqlnd_stmt, execute)(MYSQLND_STMT * const s TSRMLS_DC)
701
714
702
715
ret = s -> m -> parse_execute_response (s TSRMLS_CC );
703
716
717
+ DBG_INF_FMT ("server_status=%u cursor=%u" , stmt -> upsert_status .server_status , stmt -> upsert_status .server_status & SERVER_STATUS_CURSOR_EXISTS );
718
+
704
719
if (ret == PASS && conn -> last_query_type == QUERY_UPSERT && stmt -> upsert_status .affected_rows ) {
705
720
MYSQLND_INC_CONN_STATISTIC_W_VALUE (conn -> stats , STAT_ROWS_AFFECTED_PS , stmt -> upsert_status .affected_rows );
706
721
}
0 commit comments