Lines Matching refs:stmt

50 static void mysqlnd_stmt_separate_result_bind(MYSQLND_STMT * const stmt TSRMLS_DC);
51 static void mysqlnd_stmt_separate_one_result_bind(MYSQLND_STMT * const stmt, unsigned int param_no …
59 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
65 if (!stmt || !stmt->conn || !stmt->result) { in MYSQLND_METHOD()
68 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
70 conn = stmt->conn; in MYSQLND_METHOD()
73 if (!stmt->field_count) { in MYSQLND_METHOD()
77 if (stmt->cursor_exists) { in MYSQLND_METHOD()
84 stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE) in MYSQLND_METHOD()
91 stmt->default_rset_handler = s->m->store_result; in MYSQLND_METHOD()
93 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
97 result = stmt->result; in MYSQLND_METHOD()
109 stmt->upsert_status->affected_rows = stmt->result->stored_data->row_count; in MYSQLND_METHOD()
111 stmt->state = MYSQLND_STMT_USE_OR_STORE_CALLED; in MYSQLND_METHOD()
114 stmt->result->m.free_result_contents(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
115 mnd_efree(stmt->result); in MYSQLND_METHOD()
116 stmt->result = NULL; in MYSQLND_METHOD()
117 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
129 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
134 if (!stmt || !stmt->conn || !stmt->result) { in MYSQLND_METHOD()
137 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
139 conn = stmt->conn; in MYSQLND_METHOD()
142 if (!stmt->field_count) { in MYSQLND_METHOD()
146 if (stmt->cursor_exists) { in MYSQLND_METHOD()
152 …if (CONN_GET_STATE(conn) != CONN_FETCHING_DATA || stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE… in MYSQLND_METHOD()
158 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
163 result = conn->m->result_init(stmt->result->field_count, stmt->persistent TSRMLS_CC); in MYSQLND_METHOD()
169 result->meta = stmt->result->meta->m->clone_metadata(stmt->result->meta, FALSE TSRMLS_CC); in MYSQLND_METHOD()
176 stmt->upsert_status->affected_rows = result->stored_data->row_count; in MYSQLND_METHOD()
177 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
180 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in MYSQLND_METHOD()
181 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
199 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
202 …DBG_RETURN((stmt && stmt->conn && (stmt->conn->m->get_server_status(stmt->conn TSRMLS_CC) & SERVER… in MYSQLND_METHOD()
213 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
217 if (!stmt || !stmt->conn || !stmt->result) { in MYSQLND_METHOD()
220 conn = stmt->conn; in MYSQLND_METHOD()
221 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
227 …DBG_INF_FMT("server_status=%u cursor=%u", stmt->upsert_status->server_status, stmt->upsert_status-… in MYSQLND_METHOD()
243 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_skip_metadata() local
250 if (!stmt || !stmt->conn || !stmt->conn->protocol) { in mysqlnd_stmt_skip_metadata()
253 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in mysqlnd_stmt_skip_metadata()
255 …field_packet = stmt->conn->protocol->m.get_result_field_packet(stmt->conn->protocol, FALSE TSRMLS_… in mysqlnd_stmt_skip_metadata()
257 SET_OOM_ERROR(*stmt->error_info); in mysqlnd_stmt_skip_metadata()
258 SET_OOM_ERROR(*stmt->conn->error_info); in mysqlnd_stmt_skip_metadata()
262 for (;i < stmt->param_count; i++) { in mysqlnd_stmt_skip_metadata()
263 if (FAIL == PACKET_READ(field_packet, stmt->conn)) { in mysqlnd_stmt_skip_metadata()
280 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_read_prepare_response() local
285 if (!stmt || !stmt->conn || !stmt->conn->protocol) { in mysqlnd_stmt_read_prepare_response()
288 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in mysqlnd_stmt_read_prepare_response()
290 …prepare_resp = stmt->conn->protocol->m.get_prepare_response_packet(stmt->conn->protocol, FALSE TSR… in mysqlnd_stmt_read_prepare_response()
292 SET_OOM_ERROR(*stmt->error_info); in mysqlnd_stmt_read_prepare_response()
293 SET_OOM_ERROR(*stmt->conn->error_info); in mysqlnd_stmt_read_prepare_response()
297 if (FAIL == PACKET_READ(prepare_resp, stmt->conn)) { in mysqlnd_stmt_read_prepare_response()
302 COPY_CLIENT_ERROR(*stmt->error_info, prepare_resp->error_info); in mysqlnd_stmt_read_prepare_response()
303 COPY_CLIENT_ERROR(*stmt->conn->error_info, prepare_resp->error_info); in mysqlnd_stmt_read_prepare_response()
307 stmt->stmt_id = prepare_resp->stmt_id; in mysqlnd_stmt_read_prepare_response()
308 stmt->warning_count = stmt->conn->upsert_status->warning_count = prepare_resp->warning_count; in mysqlnd_stmt_read_prepare_response()
309 stmt->field_count = stmt->conn->field_count = prepare_resp->field_count; in mysqlnd_stmt_read_prepare_response()
310 stmt->param_count = prepare_resp->param_count; in mysqlnd_stmt_read_prepare_response()
311 stmt->upsert_status->affected_rows = 0; /* be like libmysql */ in mysqlnd_stmt_read_prepare_response()
324 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_prepare_read_eof() local
329 if (!stmt || !stmt->conn || !stmt->conn->protocol) { in mysqlnd_stmt_prepare_read_eof()
332 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in mysqlnd_stmt_prepare_read_eof()
334 fields_eof = stmt->conn->protocol->m.get_eof_packet(stmt->conn->protocol, FALSE TSRMLS_CC); in mysqlnd_stmt_prepare_read_eof()
336 SET_OOM_ERROR(*stmt->error_info); in mysqlnd_stmt_prepare_read_eof()
337 SET_OOM_ERROR(*stmt->conn->error_info); in mysqlnd_stmt_prepare_read_eof()
339 if (FAIL == (ret = PACKET_READ(fields_eof, stmt->conn))) { in mysqlnd_stmt_prepare_read_eof()
340 if (stmt->result) { in mysqlnd_stmt_prepare_read_eof()
341 stmt->result->m.free_result_contents(stmt->result TSRMLS_CC); in mysqlnd_stmt_prepare_read_eof()
342 mnd_efree(stmt->result); in mysqlnd_stmt_prepare_read_eof()
343 memset(stmt, 0, sizeof(MYSQLND_STMT_DATA)); in mysqlnd_stmt_prepare_read_eof()
344 stmt->state = MYSQLND_STMT_INITTED; in mysqlnd_stmt_prepare_read_eof()
347 stmt->upsert_status->server_status = fields_eof->server_status; in mysqlnd_stmt_prepare_read_eof()
348 stmt->upsert_status->warning_count = fields_eof->warning_count; in mysqlnd_stmt_prepare_read_eof()
349 stmt->state = MYSQLND_STMT_PREPARED; in mysqlnd_stmt_prepare_read_eof()
363 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
365 MYSQLND_STMT_DATA * stmt_to_prepare = stmt; in MYSQLND_METHOD()
368 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
371 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
374 SET_ERROR_AFF_ROWS(stmt); in MYSQLND_METHOD()
375 SET_ERROR_AFF_ROWS(stmt->conn); in MYSQLND_METHOD()
377 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
378 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
380 if (stmt->state > MYSQLND_STMT_INITTED) { in MYSQLND_METHOD()
382 if (stmt->state == MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
384 stmt->default_rset_handler = s->m->use_result; in MYSQLND_METHOD()
385 stmt->default_rset_handler(s TSRMLS_CC); in MYSQLND_METHOD()
388 if (stmt->state > MYSQLND_STMT_WAITING_USE_OR_STORE && stmt->result) { in MYSQLND_METHOD()
389 stmt->result->m.skip_result(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
395 s_to_prepare = stmt->conn->m->stmt_init(stmt->conn TSRMLS_CC); in MYSQLND_METHOD()
422 …MYSQLND_RES * result = stmt->conn->m->result_init(stmt_to_prepare->field_count, stmt_to_prepare->p… in MYSQLND_METHOD()
424 SET_OOM_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
441 if (stmt_to_prepare != stmt) { in MYSQLND_METHOD()
451 stmt_to_prepare = stmt; in MYSQLND_METHOD()
452 stmt = tmp_swap_data; in MYSQLND_METHOD()
456 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
461 if (stmt_to_prepare != stmt && s_to_prepare) { in MYSQLND_METHOD()
464 stmt->state = MYSQLND_STMT_INITTED; in MYSQLND_METHOD()
476 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_execute_parse_response() local
481 if (!stmt || !stmt->conn) { in mysqlnd_stmt_execute_parse_response()
484 conn = stmt->conn; in mysqlnd_stmt_execute_parse_response()
487 ret = mysqlnd_query_read_result_set_header(stmt->conn, s TSRMLS_CC); in mysqlnd_stmt_execute_parse_response()
489 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in mysqlnd_stmt_execute_parse_response()
490 memset(stmt->upsert_status, 0, sizeof(*stmt->upsert_status)); in mysqlnd_stmt_execute_parse_response()
491 stmt->upsert_status->affected_rows = conn->upsert_status->affected_rows; in mysqlnd_stmt_execute_parse_response()
495 stmt->state = MYSQLND_STMT_PREPARED; in mysqlnd_stmt_execute_parse_response()
496 stmt->send_types_to_server = 1; in mysqlnd_stmt_execute_parse_response()
505 SET_EMPTY_ERROR(*stmt->error_info); in mysqlnd_stmt_execute_parse_response()
506 SET_EMPTY_ERROR(*stmt->conn->error_info); in mysqlnd_stmt_execute_parse_response()
507 *stmt->upsert_status = *conn->upsert_status; /* copy status */ in mysqlnd_stmt_execute_parse_response()
508 stmt->state = MYSQLND_STMT_EXECUTED; in mysqlnd_stmt_execute_parse_response()
514 stmt->result->type = MYSQLND_RES_PS_BUF; in mysqlnd_stmt_execute_parse_response()
515 if (!stmt->result->conn) { in mysqlnd_stmt_execute_parse_response()
520 stmt->result->conn = stmt->conn->m->get_reference(stmt->conn TSRMLS_CC); in mysqlnd_stmt_execute_parse_response()
524 stmt->field_count = stmt->result->field_count = conn->field_count; in mysqlnd_stmt_execute_parse_response()
525 stmt->result->lengths = NULL; in mysqlnd_stmt_execute_parse_response()
526 if (stmt->field_count) { in mysqlnd_stmt_execute_parse_response()
527 stmt->state = MYSQLND_STMT_WAITING_USE_OR_STORE; in mysqlnd_stmt_execute_parse_response()
533 DBG_INF_FMT("server_status=%u cursor=%u", stmt->upsert_status->server_status, in mysqlnd_stmt_execute_parse_response()
534 stmt->upsert_status->server_status & SERVER_STATUS_CURSOR_EXISTS); in mysqlnd_stmt_execute_parse_response()
536 if (stmt->upsert_status->server_status & SERVER_STATUS_CURSOR_EXISTS) { in mysqlnd_stmt_execute_parse_response()
538 stmt->cursor_exists = TRUE; in mysqlnd_stmt_execute_parse_response()
541 stmt->default_rset_handler = s->m->use_result; in mysqlnd_stmt_execute_parse_response()
543 } else if (stmt->flags & CURSOR_TYPE_READ_ONLY) { in mysqlnd_stmt_execute_parse_response()
556 stmt->default_rset_handler = s->m->store_result; in mysqlnd_stmt_execute_parse_response()
561 stmt->default_rset_handler = s->m->use_result; in mysqlnd_stmt_execute_parse_response()
567 if (stmt->upsert_status->server_status & SERVER_PS_OUT_PARAMS) { in mysqlnd_stmt_execute_parse_response()
585 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
593 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
596 conn = stmt->conn; in MYSQLND_METHOD()
597 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
599 SET_ERROR_AFF_ROWS(stmt); in MYSQLND_METHOD()
600 SET_ERROR_AFF_ROWS(stmt->conn); in MYSQLND_METHOD()
602 if (stmt->result && stmt->state >= MYSQLND_STMT_PREPARED && stmt->field_count) { in MYSQLND_METHOD()
609 if (stmt->result_bind && in MYSQLND_METHOD()
610 stmt->result_zvals_separated_once == TRUE && in MYSQLND_METHOD()
611 stmt->state >= MYSQLND_STMT_USER_FETCHING) in MYSQLND_METHOD()
626 for (i = 0; i < stmt->field_count; i++) { in MYSQLND_METHOD()
627 if (stmt->result_bind[i].bound == TRUE) { in MYSQLND_METHOD()
628 zval_copy_ctor(stmt->result_bind[i].zv); in MYSQLND_METHOD()
641 stmt->result->m.free_result_buffers(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
643 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
644 } else if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
648 SET_STMT_ERROR(stmt, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync); in MYSQLND_METHOD()
653 if (stmt->param_count) { in MYSQLND_METHOD()
655 if (!stmt->param_bind) { in MYSQLND_METHOD()
656 SET_STMT_ERROR(stmt, CR_PARAMS_NOT_BOUND, UNKNOWN_SQLSTATE, in MYSQLND_METHOD()
661 for (i = 0; i < stmt->param_count; i++) { in MYSQLND_METHOD()
662 if (stmt->param_bind[i].zv == NULL) { in MYSQLND_METHOD()
670 SET_STMT_ERROR(stmt, CR_PARAMS_NOT_BOUND, UNKNOWN_SQLSTATE, msg); in MYSQLND_METHOD()
681 ret = stmt->conn->m->simple_command(stmt->conn, COM_STMT_EXECUTE, request, request_len, in MYSQLND_METHOD()
685 …SET_STMT_ERROR(stmt, CR_UNKNOWN_ERROR, UNKNOWN_SQLSTATE, "Couldn't generate the request. Possibly … in MYSQLND_METHOD()
693 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in MYSQLND_METHOD()
697 stmt->execute_count++; in MYSQLND_METHOD()
701 …DBG_INF_FMT("server_status=%u cursor=%u", stmt->upsert_status->server_status, stmt->upsert_status-… in MYSQLND_METHOD()
703 if (ret == PASS && conn->last_query_type == QUERY_UPSERT && stmt->upsert_status->affected_rows) { in MYSQLND_METHOD()
704 …MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, STAT_ROWS_AFFECTED_PS, stmt->upsert_status->affect… in MYSQLND_METHOD()
716 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_fetch_row_buffered() local
722 DBG_INF_FMT("stmt=%lu", stmt != NULL ? stmt->stmt_id : 0L); in mysqlnd_stmt_fetch_row_buffered()
729 if (stmt->result_bind) { in mysqlnd_stmt_fetch_row_buffered()
746 if (stmt->update_max_length) { in mysqlnd_stmt_fetch_row_buffered()
766 if (stmt->result_bind[i].zv) { in mysqlnd_stmt_fetch_row_buffered()
767 zval_dtor(stmt->result_bind[i].zv); in mysqlnd_stmt_fetch_row_buffered()
771 if (stmt->result_bind[i].bound == TRUE) { in mysqlnd_stmt_fetch_row_buffered()
782 Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(current_row[i]); in mysqlnd_stmt_fetch_row_buffered()
783 stmt->result_bind[i].zv->value = current_row[i]->value; in mysqlnd_stmt_fetch_row_buffered()
785 zval_copy_ctor(stmt->result_bind[i].zv); in mysqlnd_stmt_fetch_row_buffered()
788 ZVAL_NULL(stmt->result_bind[i].zv); in mysqlnd_stmt_fetch_row_buffered()
814 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_fetch_row_unbuffered() local
837 row_packet->skip_extraction = stmt && stmt->result_bind? FALSE:TRUE; in mysqlnd_stmt_fetch_row_unbuffered()
865 if (stmt->result_bind[i].bound == TRUE) { in mysqlnd_stmt_fetch_row_unbuffered()
872 zval_dtor(stmt->result_bind[i].zv); in mysqlnd_stmt_fetch_row_unbuffered()
874 if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data)) ) { in mysqlnd_stmt_fetch_row_unbuffered()
878 stmt->result_bind[i].zv->value = data->value; in mysqlnd_stmt_fetch_row_unbuffered()
884 MYSQLND_INC_CONN_STATISTIC(stmt->conn->stats, STAT_ROWS_FETCHED_FROM_CLIENT_PS_UNBUF); in mysqlnd_stmt_fetch_row_unbuffered()
901 COPY_CLIENT_ERROR(*stmt->conn->error_info, row_packet->error_info); in mysqlnd_stmt_fetch_row_unbuffered()
902 COPY_CLIENT_ERROR(*stmt->error_info, row_packet->error_info); in mysqlnd_stmt_fetch_row_unbuffered()
934 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
939 if (!stmt || !stmt->conn || !stmt->result) { in MYSQLND_METHOD()
942 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
944 conn = stmt->conn; in MYSQLND_METHOD()
946 if (!stmt->field_count || in MYSQLND_METHOD()
947 (!stmt->cursor_exists && CONN_GET_STATE(conn) != CONN_FETCHING_DATA) || in MYSQLND_METHOD()
948 (stmt->cursor_exists && CONN_GET_STATE(conn) != CONN_READY) || in MYSQLND_METHOD()
949 (stmt->state != MYSQLND_STMT_WAITING_USE_OR_STORE)) in MYSQLND_METHOD()
957 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
959 MYSQLND_INC_CONN_STATISTIC(stmt->conn->stats, STAT_PS_UNBUFFERED_SETS); in MYSQLND_METHOD()
960 result = stmt->result; in MYSQLND_METHOD()
962 result->m.use_result(stmt->result, TRUE TSRMLS_CC); in MYSQLND_METHOD()
963 result->m.fetch_row = stmt->cursor_exists? mysqlnd_fetch_stmt_row_cursor: in MYSQLND_METHOD()
965 stmt->state = MYSQLND_STMT_USE_OR_STORE_CALLED; in MYSQLND_METHOD()
981 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_fetch_stmt_row_cursor() local
987 if (!stmt || !stmt->conn || !result || !result->conn || !result->unbuf) { in mysqlnd_fetch_stmt_row_cursor()
992 DBG_INF_FMT("stmt=%lu flags=%u", stmt->stmt_id, flags); in mysqlnd_fetch_stmt_row_cursor()
994 if (stmt->state < MYSQLND_STMT_USER_FETCHING) { in mysqlnd_fetch_stmt_row_cursor()
996 SET_CLIENT_ERROR(*stmt->conn->error_info, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, in mysqlnd_fetch_stmt_row_cursor()
1005 SET_EMPTY_ERROR(*stmt->error_info); in mysqlnd_fetch_stmt_row_cursor()
1006 SET_EMPTY_ERROR(*stmt->conn->error_info); in mysqlnd_fetch_stmt_row_cursor()
1008 int4store(buf, stmt->stmt_id); in mysqlnd_fetch_stmt_row_cursor()
1011 if (FAIL == stmt->conn->m->simple_command(stmt->conn, COM_STMT_FETCH, buf, sizeof(buf), in mysqlnd_fetch_stmt_row_cursor()
1014 COPY_CLIENT_ERROR(*stmt->error_info, *stmt->conn->error_info); in mysqlnd_fetch_stmt_row_cursor()
1018 row_packet->skip_extraction = stmt->result_bind? FALSE:TRUE; in mysqlnd_fetch_stmt_row_cursor()
1020 memset(stmt->upsert_status, 0, sizeof(*stmt->upsert_status)); in mysqlnd_fetch_stmt_row_cursor()
1044 if (stmt->result_bind[i].bound == TRUE) { in mysqlnd_fetch_stmt_row_cursor()
1051 zval_dtor(stmt->result_bind[i].zv); in mysqlnd_fetch_stmt_row_cursor()
1053 DBG_INF_FMT("i=%u bound_var=%p type=%u refc=%u", i, stmt->result_bind[i].zv, in mysqlnd_fetch_stmt_row_cursor()
1054 Z_TYPE_P(data), Z_REFCOUNT_P(stmt->result_bind[i].zv)); in mysqlnd_fetch_stmt_row_cursor()
1055 if (IS_NULL != (Z_TYPE_P(stmt->result_bind[i].zv) = Z_TYPE_P(data))) { in mysqlnd_fetch_stmt_row_cursor()
1059 stmt->result_bind[i].zv->value = data->value; in mysqlnd_fetch_stmt_row_cursor()
1082 MYSQLND_INC_CONN_STATISTIC(stmt->conn->stats, STAT_ROWS_FETCHED_FROM_CLIENT_PS_CURSOR); in mysqlnd_fetch_stmt_row_cursor()
1089 stmt->upsert_status->warning_count = in mysqlnd_fetch_stmt_row_cursor()
1090 stmt->conn->upsert_status->warning_count = in mysqlnd_fetch_stmt_row_cursor()
1093 stmt->upsert_status->server_status = in mysqlnd_fetch_stmt_row_cursor()
1094 stmt->conn->upsert_status->server_status = in mysqlnd_fetch_stmt_row_cursor()
1099 stmt->upsert_status->warning_count = in mysqlnd_fetch_stmt_row_cursor()
1100 stmt->conn->upsert_status->warning_count = in mysqlnd_fetch_stmt_row_cursor()
1102 stmt->upsert_status->server_status = in mysqlnd_fetch_stmt_row_cursor()
1103 stmt->conn->upsert_status->server_status = in mysqlnd_fetch_stmt_row_cursor()
1119 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1122 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1125 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
1127 if (!stmt->result || in MYSQLND_METHOD()
1128 stmt->state < MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
1129 SET_STMT_ERROR(stmt, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync); in MYSQLND_METHOD()
1133 } else if (stmt->state == MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
1136 stmt->default_rset_handler(s TSRMLS_CC); in MYSQLND_METHOD()
1138 stmt->state = MYSQLND_STMT_USER_FETCHING; in MYSQLND_METHOD()
1140 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1141 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1143 …DBG_INF_FMT("result_bind=%p separated_once=%u", stmt->result_bind, stmt->result_zvals_separated_on… in MYSQLND_METHOD()
1148 if (stmt->result_bind && !stmt->result_zvals_separated_once) { in MYSQLND_METHOD()
1154 for (i = 0; i < stmt->result->field_count; i++) { in MYSQLND_METHOD()
1155 if (stmt->result_bind[i].bound == TRUE) { in MYSQLND_METHOD()
1156 zval_dtor(stmt->result_bind[i].zv); in MYSQLND_METHOD()
1157 ZVAL_NULL(stmt->result_bind[i].zv); in MYSQLND_METHOD()
1160 stmt->result_zvals_separated_once = TRUE; in MYSQLND_METHOD()
1163 ret = stmt->result->m.fetch_row(stmt->result, (void*)s, 0, fetched_anything TSRMLS_CC); in MYSQLND_METHOD()
1173 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1178 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1181 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
1183 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1184 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1186 if (stmt->stmt_id) { in MYSQLND_METHOD()
1187 MYSQLND_CONN_DATA * conn = stmt->conn; in MYSQLND_METHOD()
1188 if (stmt->param_bind) { in MYSQLND_METHOD()
1192 for (i = 0; i < stmt->param_count; i++) { in MYSQLND_METHOD()
1193 if (stmt->param_bind[i].flags & MYSQLND_PARAM_BIND_BLOB_USED) { in MYSQLND_METHOD()
1194 stmt->param_bind[i].flags &= ~MYSQLND_PARAM_BIND_BLOB_USED; in MYSQLND_METHOD()
1207 int4store(cmd_buf, stmt->stmt_id); in MYSQLND_METHOD()
1212 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in MYSQLND_METHOD()
1214 *stmt->upsert_status = *conn->upsert_status; in MYSQLND_METHOD()
1226 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1230 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1233 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
1235 if (stmt->stmt_id) { in MYSQLND_METHOD()
1242 if (stmt->state == MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
1244 stmt->default_rset_handler(s TSRMLS_CC); in MYSQLND_METHOD()
1245 stmt->state = MYSQLND_STMT_USER_FETCHING; in MYSQLND_METHOD()
1248 if (stmt->result) { in MYSQLND_METHOD()
1250 stmt->result->m.skip_result(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
1265 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1272 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1275 DBG_INF_FMT("stmt=%lu param_no=%u data_len=%lu", stmt->stmt_id, param_no, length); in MYSQLND_METHOD()
1277 conn = stmt->conn; in MYSQLND_METHOD()
1279 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1280 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1282 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1283 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1287 if (!stmt->param_bind) { in MYSQLND_METHOD()
1288 SET_STMT_ERROR(stmt, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, mysqlnd_out_of_sync); in MYSQLND_METHOD()
1292 if (param_no >= stmt->param_count) { in MYSQLND_METHOD()
1293 SET_STMT_ERROR(stmt, CR_INVALID_PARAMETER_NO, UNKNOWN_SQLSTATE, "Invalid parameter number"); in MYSQLND_METHOD()
1297 if (stmt->param_bind[param_no].type != MYSQL_TYPE_LONG_BLOB) { in MYSQLND_METHOD()
1298 SET_STMT_ERROR(stmt, CR_INVALID_BUFFER_USE, UNKNOWN_SQLSTATE, mysqlnd_not_bound_as_blob); in MYSQLND_METHOD()
1317 stmt->param_bind[param_no].flags |= MYSQLND_PARAM_BIND_BLOB_USED; in MYSQLND_METHOD()
1319 int4store(cmd_buf, stmt->stmt_id); in MYSQLND_METHOD()
1327 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in MYSQLND_METHOD()
1331 SET_OOM_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1359 SET_STMT_ERROR(stmt, CR_CONNECTION_ERROR, UNKNOWN_SQLSTATE, in MYSQLND_METHOD()
1376 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1378 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1381 DBG_INF_FMT("stmt=%lu param_count=%u", stmt->stmt_id, stmt->param_count); in MYSQLND_METHOD()
1383 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1384 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1392 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1393 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1395 if (stmt->param_count) { in MYSQLND_METHOD()
1399 …SET_STMT_ERROR(stmt, CR_COMMANDS_OUT_OF_SYNC, UNKNOWN_SQLSTATE, "Re-binding (still) not supported"… in MYSQLND_METHOD()
1402 } else if (stmt->param_bind) { in MYSQLND_METHOD()
1408 for (i = 0; i < stmt->param_count; i++) { in MYSQLND_METHOD()
1413 if (stmt->param_bind[i].zv) { in MYSQLND_METHOD()
1414 zval_ptr_dtor(&stmt->param_bind[i].zv); in MYSQLND_METHOD()
1417 if (stmt->param_bind != param_bind) { in MYSQLND_METHOD()
1418 s->m->free_parameter_bind(s, stmt->param_bind TSRMLS_CC); in MYSQLND_METHOD()
1422 stmt->param_bind = param_bind; in MYSQLND_METHOD()
1423 for (i = 0; i < stmt->param_count; i++) { in MYSQLND_METHOD()
1425 DBG_INF_FMT("%u is of type %u", i, stmt->param_bind[i].type); in MYSQLND_METHOD()
1428 Z_ADDREF_P(stmt->param_bind[i].zv); in MYSQLND_METHOD()
1429 stmt->param_bind[i].flags = 0; in MYSQLND_METHOD()
1430 if (stmt->param_bind[i].type == MYSQL_TYPE_LONG_BLOB) { in MYSQLND_METHOD()
1431 stmt->param_bind[i].flags &= ~MYSQLND_PARAM_BIND_BLOB_USED; in MYSQLND_METHOD()
1434 stmt->send_types_to_server = 1; in MYSQLND_METHOD()
1447 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1449 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1452 …DBG_INF_FMT("stmt=%lu param_no=%u param_count=%u type=%u", stmt->stmt_id, param_no, stmt->param_co… in MYSQLND_METHOD()
1454 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1455 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1460 if (param_no >= stmt->param_count) { in MYSQLND_METHOD()
1461 SET_STMT_ERROR(stmt, CR_INVALID_PARAMETER_NO, UNKNOWN_SQLSTATE, "Invalid parameter number"); in MYSQLND_METHOD()
1465 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1466 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1468 if (stmt->param_count) { in MYSQLND_METHOD()
1469 if (!stmt->param_bind) { in MYSQLND_METHOD()
1470 stmt->param_bind = mnd_pecalloc(stmt->param_count, sizeof(MYSQLND_PARAM_BIND), stmt->persistent); in MYSQLND_METHOD()
1471 if (!stmt->param_bind) { in MYSQLND_METHOD()
1481 if (stmt->param_bind[param_no].zv) { in MYSQLND_METHOD()
1482 zval_ptr_dtor(&stmt->param_bind[param_no].zv); in MYSQLND_METHOD()
1486 stmt->param_bind[param_no].flags &= ~MYSQLND_PARAM_BIND_BLOB_USED; in MYSQLND_METHOD()
1488 stmt->param_bind[param_no].zv = zv; in MYSQLND_METHOD()
1489 stmt->param_bind[param_no].type = type; in MYSQLND_METHOD()
1491 stmt->send_types_to_server = 1; in MYSQLND_METHOD()
1503 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1505 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1508 DBG_INF_FMT("stmt=%lu param_count=%u", stmt->stmt_id, stmt->param_count); in MYSQLND_METHOD()
1510 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1511 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1516 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1517 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1519 if (stmt->param_count) { in MYSQLND_METHOD()
1520 stmt->send_types_to_server = 1; in MYSQLND_METHOD()
1532 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1534 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1537 DBG_INF_FMT("stmt=%lu field_count=%u", stmt->stmt_id, stmt->field_count); in MYSQLND_METHOD()
1539 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1540 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1548 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1549 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1551 if (stmt->field_count) { in MYSQLND_METHOD()
1560 stmt->result_zvals_separated_once = FALSE; in MYSQLND_METHOD()
1561 stmt->result_bind = result_bind; in MYSQLND_METHOD()
1562 for (i = 0; i < stmt->field_count; i++) { in MYSQLND_METHOD()
1564 Z_ADDREF_P(stmt->result_bind[i].zv); in MYSQLND_METHOD()
1565 DBG_INF_FMT("ref of %p = %u", stmt->result_bind[i].zv, Z_REFCOUNT_P(stmt->result_bind[i].zv)); in MYSQLND_METHOD()
1571 stmt->result_bind[i].bound = TRUE; in MYSQLND_METHOD()
1586 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1588 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1591 DBG_INF_FMT("stmt=%lu field_count=%u", stmt->stmt_id, stmt->field_count); in MYSQLND_METHOD()
1593 if (stmt->state < MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1594 SET_STMT_ERROR(stmt, CR_NO_PREPARE_STMT, UNKNOWN_SQLSTATE, mysqlnd_stmt_not_prepared); in MYSQLND_METHOD()
1599 if (param_no >= stmt->field_count) { in MYSQLND_METHOD()
1600 SET_STMT_ERROR(stmt, CR_INVALID_PARAMETER_NO, UNKNOWN_SQLSTATE, "Invalid parameter number"); in MYSQLND_METHOD()
1605 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD()
1606 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1608 if (stmt->field_count) { in MYSQLND_METHOD()
1611 if (!stmt->result_bind) { in MYSQLND_METHOD()
1612stmt->result_bind = mnd_pecalloc(stmt->field_count, sizeof(MYSQLND_RESULT_BIND), stmt->persistent); in MYSQLND_METHOD()
1614stmt->result_bind = mnd_perealloc(stmt->result_bind, stmt->field_count * sizeof(MYSQLND_RESULT_BIN… in MYSQLND_METHOD()
1616 if (!stmt->result_bind) { in MYSQLND_METHOD()
1619 ALLOC_INIT_ZVAL(stmt->result_bind[param_no].zv); in MYSQLND_METHOD()
1625 stmt->result_bind[param_no].bound = TRUE; in MYSQLND_METHOD()
1637 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1638 return stmt? stmt->upsert_status->last_insert_id : 0; in MYSQLND_METHOD()
1647 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1648 return stmt? stmt->upsert_status->affected_rows : 0; in MYSQLND_METHOD()
1657 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1658 return stmt && stmt->result? mysqlnd_num_rows(stmt->result):0; in MYSQLND_METHOD()
1667 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1668 return stmt? stmt->upsert_status->warning_count : 0; in MYSQLND_METHOD()
1677 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1678 return stmt? stmt->upsert_status->server_status : 0; in MYSQLND_METHOD()
1687 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1688 return stmt? stmt->field_count : 0; in MYSQLND_METHOD()
1697 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1698 return stmt? stmt->param_count : 0; in MYSQLND_METHOD()
1707 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1708 return stmt? stmt->error_info->error_no : 0; in MYSQLND_METHOD()
1717 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1718 return stmt? stmt->error_info->error : 0; in MYSQLND_METHOD()
1727 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1728 return stmt && stmt->error_info->sqlstate[0] ? stmt->error_info->sqlstate:MYSQLND_SQLSTATE_NULL; in MYSQLND_METHOD()
1737 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1738 return stmt && stmt->result? stmt->result->m.seek_data(stmt->result, row TSRMLS_CC) : FAIL; in MYSQLND_METHOD()
1747 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1748 if (!stmt || !stmt->param_count) { in MYSQLND_METHOD()
1760 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1764 if (!stmt) { in MYSQLND_METHOD()
1767 DBG_INF_FMT("stmt=%u field_count=%u", stmt->stmt_id, stmt->field_count); in MYSQLND_METHOD()
1769 if (!stmt->field_count || !stmt->conn || !stmt->result || !stmt->result->meta) { in MYSQLND_METHOD()
1774 if (stmt->update_max_length && stmt->result->stored_data) { in MYSQLND_METHOD()
1776 stmt->result->m.initialize_result_set_rest(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
1788 result = stmt->conn->m->result_init(stmt->field_count, stmt->persistent TSRMLS_CC); in MYSQLND_METHOD()
1799 result->meta = stmt->result->meta->m->clone_metadata(stmt->result->meta, FALSE TSRMLS_CC); in MYSQLND_METHOD()
1808 SET_OOM_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD()
1823 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1825 if (!stmt) { in MYSQLND_METHOD()
1828 DBG_INF_FMT("stmt=%lu attr_type=%u", stmt->stmt_id, attr_type); in MYSQLND_METHOD()
1837 stmt->update_max_length = bval? TRUE:FALSE; in MYSQLND_METHOD()
1843 SET_STMT_ERROR(stmt, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented"); in MYSQLND_METHOD()
1847 stmt->flags = ival; in MYSQLND_METHOD()
1855 SET_STMT_ERROR(stmt, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented"); in MYSQLND_METHOD()
1859 stmt->prefetch_rows = ival; in MYSQLND_METHOD()
1863 SET_STMT_ERROR(stmt, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, "Not implemented"); in MYSQLND_METHOD()
1878 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1880 if (!stmt) { in MYSQLND_METHOD()
1883 DBG_INF_FMT("stmt=%lu attr_type=%u", stmt->stmt_id, attr_type); in MYSQLND_METHOD()
1887 *(zend_bool *) value= stmt->update_max_length; in MYSQLND_METHOD()
1890 *(unsigned long *) value= stmt->flags; in MYSQLND_METHOD()
1893 *(unsigned long *) value= stmt->prefetch_rows; in MYSQLND_METHOD()
1909 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
1911 if (!stmt || !stmt->conn) { in MYSQLND_METHOD()
1914 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD()
1916 if (!stmt->result) { in MYSQLND_METHOD()
1925 if (stmt->state == MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
1928 stmt->default_rset_handler = s->m->use_result; in MYSQLND_METHOD()
1929 stmt->default_rset_handler(s TSRMLS_CC); in MYSQLND_METHOD()
1932 if (stmt->state > MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD()
1935 stmt->result->m.skip_result(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
1943 stmt->result->m.free_result_buffers(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
1946 if (stmt->state > MYSQLND_STMT_PREPARED) { in MYSQLND_METHOD()
1948 stmt->state = MYSQLND_STMT_PREPARED; in MYSQLND_METHOD()
1952 CONN_SET_STATE(stmt->conn, CONN_READY); in MYSQLND_METHOD()
1963 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_separate_result_bind() local
1967 if (!stmt) { in mysqlnd_stmt_separate_result_bind()
1970 …DBG_INF_FMT("stmt=%lu result_bind=%p field_count=%u", stmt->stmt_id, stmt->result_bind, stmt->fiel… in mysqlnd_stmt_separate_result_bind()
1972 if (!stmt->result_bind) { in mysqlnd_stmt_separate_result_bind()
1981 for (i = 0; i < stmt->field_count; i++) { in mysqlnd_stmt_separate_result_bind()
1983 if (stmt->result_bind[i].bound == TRUE) { in mysqlnd_stmt_separate_result_bind()
1984 DBG_INF_FMT("%u has refcount=%u", i, Z_REFCOUNT_P(stmt->result_bind[i].zv)); in mysqlnd_stmt_separate_result_bind()
1989 if (Z_REFCOUNT_P(stmt->result_bind[i].zv) > 1) { in mysqlnd_stmt_separate_result_bind()
1991 zval_copy_ctor(stmt->result_bind[i].zv); in mysqlnd_stmt_separate_result_bind()
1993 zval_ptr_dtor(&stmt->result_bind[i].zv); in mysqlnd_stmt_separate_result_bind()
2001 ZVAL_NULL(stmt->result_bind[i].zv); in mysqlnd_stmt_separate_result_bind()
2003 zval_ptr_dtor(&stmt->result_bind[i].zv); in mysqlnd_stmt_separate_result_bind()
2007 s->m->free_result_bind(s, stmt->result_bind TSRMLS_CC); in mysqlnd_stmt_separate_result_bind()
2008 stmt->result_bind = NULL; in mysqlnd_stmt_separate_result_bind()
2019 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in mysqlnd_stmt_separate_one_result_bind() local
2021 if (!stmt) { in mysqlnd_stmt_separate_one_result_bind()
2024 …MT("stmt=%lu result_bind=%p field_count=%u param_no=%u", stmt->stmt_id, stmt->result_bind, stmt->f… in mysqlnd_stmt_separate_one_result_bind()
2026 if (!stmt->result_bind) { in mysqlnd_stmt_separate_one_result_bind()
2036 if (stmt->result_bind[param_no].bound == TRUE) { in mysqlnd_stmt_separate_one_result_bind()
2037 DBG_INF_FMT("%u has refcount=%u", param_no, Z_REFCOUNT_P(stmt->result_bind[param_no].zv)); in mysqlnd_stmt_separate_one_result_bind()
2042 if (Z_REFCOUNT_P(stmt->result_bind[param_no].zv) > 1) { in mysqlnd_stmt_separate_one_result_bind()
2044 zval_copy_ctor(stmt->result_bind[param_no].zv); in mysqlnd_stmt_separate_one_result_bind()
2046 zval_ptr_dtor(&stmt->result_bind[param_no].zv); in mysqlnd_stmt_separate_one_result_bind()
2054 ZVAL_NULL(stmt->result_bind[param_no].zv); in mysqlnd_stmt_separate_one_result_bind()
2056 zval_ptr_dtor(&stmt->result_bind[param_no].zv); in mysqlnd_stmt_separate_one_result_bind()
2069 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2071 if (!stmt) { in MYSQLND_METHOD()
2081 if (stmt->result) { in MYSQLND_METHOD()
2082 stmt->result->m.free_result_internal(stmt->result TSRMLS_CC); in MYSQLND_METHOD()
2083 stmt->result = NULL; in MYSQLND_METHOD()
2085 if (stmt->error_info->error_list) { in MYSQLND_METHOD()
2086 zend_llist_clean(stmt->error_info->error_list); in MYSQLND_METHOD()
2087 mnd_pefree(stmt->error_info->error_list, s->persistent); in MYSQLND_METHOD()
2088 stmt->error_info->error_list = NULL; in MYSQLND_METHOD()
2100 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2102 if (!stmt) { in MYSQLND_METHOD()
2105 …DBG_INF_FMT("stmt=%lu param_bind=%p param_count=%u", stmt->stmt_id, stmt->param_bind, stmt->param_… in MYSQLND_METHOD()
2108 if (stmt->param_bind) { in MYSQLND_METHOD()
2115 for (i = 0; i < stmt->param_count; i++) { in MYSQLND_METHOD()
2120 if (stmt->param_bind[i].zv) { in MYSQLND_METHOD()
2121 zval_ptr_dtor(&stmt->param_bind[i].zv); in MYSQLND_METHOD()
2124 s->m->free_parameter_bind(s, stmt->param_bind TSRMLS_CC); in MYSQLND_METHOD()
2125 stmt->param_bind = NULL; in MYSQLND_METHOD()
2138 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD_PRIVATE() local
2144 if (!stmt || !stmt->conn) { in MYSQLND_METHOD_PRIVATE()
2147 DBG_INF_FMT("stmt=%lu", stmt->stmt_id); in MYSQLND_METHOD_PRIVATE()
2149 conn = stmt->conn; in MYSQLND_METHOD_PRIVATE()
2151 SET_EMPTY_ERROR(*stmt->error_info); in MYSQLND_METHOD_PRIVATE()
2152 SET_EMPTY_ERROR(*stmt->conn->error_info); in MYSQLND_METHOD_PRIVATE()
2160 if (stmt->state == MYSQLND_STMT_WAITING_USE_OR_STORE) { in MYSQLND_METHOD_PRIVATE()
2162 stmt->default_rset_handler(s TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
2163 stmt->state = MYSQLND_STMT_USER_FETCHING; in MYSQLND_METHOD_PRIVATE()
2167 if (stmt->result) { in MYSQLND_METHOD_PRIVATE()
2169 stmt->result->m.skip_result(stmt->result TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
2176 if (stmt->stmt_id) { in MYSQLND_METHOD_PRIVATE()
2180 int4store(cmd_buf, stmt->stmt_id); in MYSQLND_METHOD_PRIVATE()
2185 COPY_CLIENT_ERROR(*stmt->error_info, *conn->error_info); in MYSQLND_METHOD_PRIVATE()
2189 switch (stmt->execute_count) { in MYSQLND_METHOD_PRIVATE()
2203 if (stmt->execute_cmd_buffer.buffer) { in MYSQLND_METHOD_PRIVATE()
2204 mnd_pefree(stmt->execute_cmd_buffer.buffer, stmt->persistent); in MYSQLND_METHOD_PRIVATE()
2205 stmt->execute_cmd_buffer.buffer = NULL; in MYSQLND_METHOD_PRIVATE()
2210 if (stmt->conn) { in MYSQLND_METHOD_PRIVATE()
2211 stmt->conn->m->free_reference(stmt->conn TSRMLS_CC); in MYSQLND_METHOD_PRIVATE()
2212 stmt->conn = NULL; in MYSQLND_METHOD_PRIVATE()
2223 MYSQLND_STMT_DATA * stmt = (s != NULL) ? s->data:NULL; in MYSQLND_METHOD() local
2228 if (stmt) { in MYSQLND_METHOD()
2229 DBG_INF_FMT("stmt=%p", stmt); in MYSQLND_METHOD()
2235 mnd_pefree(stmt, persistent); in MYSQLND_METHOD()
2249 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2251 if (!stmt) { in MYSQLND_METHOD()
2254 DBG_RETURN(mnd_pecalloc(stmt->param_count, sizeof(MYSQLND_PARAM_BIND), stmt->persistent)); in MYSQLND_METHOD()
2263 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2265 if (!stmt) { in MYSQLND_METHOD()
2268 DBG_RETURN(mnd_pecalloc(stmt->field_count, sizeof(MYSQLND_RESULT_BIND), stmt->persistent)); in MYSQLND_METHOD()
2277 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2278 if (stmt) { in MYSQLND_METHOD()
2279 mnd_pefree(param_bind, stmt->persistent); in MYSQLND_METHOD()
2289 MYSQLND_STMT_DATA * stmt = s? s->data:NULL; in MYSQLND_METHOD() local
2290 if (stmt) { in MYSQLND_METHOD()
2291 mnd_pefree(result_bind, stmt->persistent); in MYSQLND_METHOD()