Lines Matching refs:S

49 	pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;  in pdo_mysql_stmt_dtor()  local
52 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_dtor()
53 if (S->result) { in pdo_mysql_stmt_dtor()
55 mysql_free_result(S->result); in pdo_mysql_stmt_dtor()
56 S->result = NULL; in pdo_mysql_stmt_dtor()
58 if (S->einfo.errmsg) { in pdo_mysql_stmt_dtor()
59 pefree(S->einfo.errmsg, stmt->dbh->is_persistent); in pdo_mysql_stmt_dtor()
60 S->einfo.errmsg = NULL; in pdo_mysql_stmt_dtor()
62 if (S->stmt) { in pdo_mysql_stmt_dtor()
63 pdo_mysql_stmt_close(S->stmt); in pdo_mysql_stmt_dtor()
64 S->stmt = NULL; in pdo_mysql_stmt_dtor()
68 if (S->params) { in pdo_mysql_stmt_dtor()
69 efree(S->params); in pdo_mysql_stmt_dtor()
71 if (S->in_null) { in pdo_mysql_stmt_dtor()
72 efree(S->in_null); in pdo_mysql_stmt_dtor()
74 if (S->in_length) { in pdo_mysql_stmt_dtor()
75 efree(S->in_length); in pdo_mysql_stmt_dtor()
78 if (S->bound_result) in pdo_mysql_stmt_dtor()
82 pdo_free_bound_result(S->bound_result[i]); in pdo_mysql_stmt_dtor()
85 efree(S->bound_result); in pdo_mysql_stmt_dtor()
86 efree(S->out_null); in pdo_mysql_stmt_dtor()
87 efree(S->out_length); in pdo_mysql_stmt_dtor()
94 while (mysql_more_results(S->H->server)) { in pdo_mysql_stmt_dtor()
96 if (mysql_next_result(S->H->server) != 0) { in pdo_mysql_stmt_dtor()
100 res = mysql_store_result(S->H->server); in pdo_mysql_stmt_dtor()
108 if (!S->stmt && S->current_data) { in pdo_mysql_stmt_dtor()
109 mnd_free(S->current_data); in pdo_mysql_stmt_dtor()
113 efree(S); in pdo_mysql_stmt_dtor()
121 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_set_row_count() local
122 row_count = (zend_long) mysql_stmt_affected_rows(S->stmt); in pdo_mysql_stmt_set_row_count()
131 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_fill_stmt_from_result() local
132 pdo_mysql_db_handle *H = S->H; in pdo_mysql_fill_stmt_from_result()
141 S->result = mysql_use_result(H->server); in pdo_mysql_fill_stmt_from_result()
143 S->result = mysql_store_result(H->server); in pdo_mysql_fill_stmt_from_result()
145 if (NULL == S->result) { in pdo_mysql_fill_stmt_from_result()
150 stmt->row_count = (zend_long) mysql_num_rows(S->result); in pdo_mysql_fill_stmt_from_result()
151 stmt->column_count = (int) mysql_num_fields(S->result); in pdo_mysql_fill_stmt_from_result()
152 S->fields = mysql_fetch_fields(S->result); in pdo_mysql_fill_stmt_from_result()
165 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_execute_prepared_libmysql() local
166 pdo_mysql_db_handle *H = S->H; in pdo_mysql_stmt_execute_prepared_libmysql()
171 if (mysql_stmt_bind_param(S->stmt, S->params) || mysql_stmt_execute(S->stmt)) { in pdo_mysql_stmt_execute_prepared_libmysql()
172 if (S->params) { in pdo_mysql_stmt_execute_prepared_libmysql()
173 memset(S->params, 0, S->num_params * sizeof(MYSQL_BIND)); in pdo_mysql_stmt_execute_prepared_libmysql()
176 if (mysql_stmt_errno(S->stmt) == 2057) { in pdo_mysql_stmt_execute_prepared_libmysql()
178 S->stmt = NULL; in pdo_mysql_stmt_execute_prepared_libmysql()
183 if (!S->result) { in pdo_mysql_stmt_execute_prepared_libmysql()
187 S->result = mysql_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
188 if (S->result) { in pdo_mysql_stmt_execute_prepared_libmysql()
189 int calc_max_length = H->buffered && S->max_length == 1; in pdo_mysql_stmt_execute_prepared_libmysql()
190 S->fields = mysql_fetch_fields(S->result); in pdo_mysql_stmt_execute_prepared_libmysql()
191 if (S->bound_result) { in pdo_mysql_stmt_execute_prepared_libmysql()
194 efree(S->bound_result[i].buffer); in pdo_mysql_stmt_execute_prepared_libmysql()
196 efree(S->bound_result); in pdo_mysql_stmt_execute_prepared_libmysql()
197 efree(S->out_null); in pdo_mysql_stmt_execute_prepared_libmysql()
198 efree(S->out_length); in pdo_mysql_stmt_execute_prepared_libmysql()
201 stmt->column_count = (int)mysql_num_fields(S->result); in pdo_mysql_stmt_execute_prepared_libmysql()
202 S->bound_result = ecalloc(stmt->column_count, sizeof(MYSQL_BIND)); in pdo_mysql_stmt_execute_prepared_libmysql()
203 S->out_null = ecalloc(stmt->column_count, sizeof(my_bool)); in pdo_mysql_stmt_execute_prepared_libmysql()
204 S->out_length = ecalloc(stmt->column_count, sizeof(zend_ulong)); in pdo_mysql_stmt_execute_prepared_libmysql()
208 if (calc_max_length && S->fields[i].type == FIELD_TYPE_BLOB) { in pdo_mysql_stmt_execute_prepared_libmysql()
210 mysql_stmt_attr_set(S->stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &on); in pdo_mysql_stmt_execute_prepared_libmysql()
213 switch (S->fields[i].type) { in pdo_mysql_stmt_execute_prepared_libmysql()
215 S->bound_result[i].buffer_length = MAX_MEDIUMINT_WIDTH + 1; in pdo_mysql_stmt_execute_prepared_libmysql()
218 S->bound_result[i].buffer_length = MAX_INT_WIDTH + 1; in pdo_mysql_stmt_execute_prepared_libmysql()
221 S->bound_result[i].buffer_length = MAX_BIGINT_WIDTH + 1; in pdo_mysql_stmt_execute_prepared_libmysql()
224 S->bound_result[i].buffer_length = MAX_TINYINT_WIDTH + 1; in pdo_mysql_stmt_execute_prepared_libmysql()
227 S->bound_result[i].buffer_length = MAX_SMALLINT_WIDTH + 1; in pdo_mysql_stmt_execute_prepared_libmysql()
230 S->bound_result[i].buffer_length = in pdo_mysql_stmt_execute_prepared_libmysql()
231 S->fields[i].max_length? S->fields[i].max_length: in pdo_mysql_stmt_execute_prepared_libmysql()
232 S->fields[i].length; in pdo_mysql_stmt_execute_prepared_libmysql()
234 if (S->bound_result[i].buffer_length > H->max_buffer_size) { in pdo_mysql_stmt_execute_prepared_libmysql()
235 S->bound_result[i].buffer_length = H->max_buffer_size; in pdo_mysql_stmt_execute_prepared_libmysql()
243 …if (S->fields[i].max_length == 0 && S->bound_result[i].buffer_length < 128 && MYSQL_TYPE_VAR_STRIN… in pdo_mysql_stmt_execute_prepared_libmysql()
244 S->bound_result[i].buffer_length = 128; in pdo_mysql_stmt_execute_prepared_libmysql()
247 S->out_length[i] = 0; in pdo_mysql_stmt_execute_prepared_libmysql()
249 S->bound_result[i].buffer = emalloc(S->bound_result[i].buffer_length); in pdo_mysql_stmt_execute_prepared_libmysql()
250 S->bound_result[i].is_null = &S->out_null[i]; in pdo_mysql_stmt_execute_prepared_libmysql()
251 S->bound_result[i].length = &S->out_length[i]; in pdo_mysql_stmt_execute_prepared_libmysql()
252 S->bound_result[i].buffer_type = MYSQL_TYPE_STRING; in pdo_mysql_stmt_execute_prepared_libmysql()
255 if (mysql_stmt_bind_result(S->stmt, S->bound_result)) { in pdo_mysql_stmt_execute_prepared_libmysql()
262 mysql_stmt_store_result(S->stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
276 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_execute_prepared_mysqlnd() local
277 pdo_mysql_db_handle *H = S->H; in pdo_mysql_stmt_execute_prepared_mysqlnd()
282 if (mysql_stmt_execute(S->stmt)) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
287 if (S->result) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
289 mysql_free_result(S->result); in pdo_mysql_stmt_execute_prepared_mysqlnd()
290 S->result = NULL; in pdo_mysql_stmt_execute_prepared_mysqlnd()
294 stmt->column_count = mysql_stmt_field_count(S->stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
296 mysqlnd_stmt_bind_one_result(S->stmt, i); in pdo_mysql_stmt_execute_prepared_mysqlnd()
299 S->result = mysqlnd_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
300 if (S->result) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
301 S->fields = mysql_fetch_fields(S->result); in pdo_mysql_stmt_execute_prepared_mysqlnd()
304 if (mysql_stmt_store_result(S->stmt)) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
318 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_execute() local
319 pdo_mysql_db_handle *H = S->H; in pdo_mysql_stmt_execute()
321 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_execute()
323 if (S->stmt) { in pdo_mysql_stmt_execute()
328 if (S->result) { in pdo_mysql_stmt_execute()
329 mysql_free_result(S->result); in pdo_mysql_stmt_execute()
330 S->result = NULL; in pdo_mysql_stmt_execute()
344 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_next_rowset() local
345 pdo_mysql_db_handle *H = S->H; in pdo_mysql_stmt_next_rowset()
350 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_next_rowset()
354 if (!mysqlnd_stmt_more_results(S->stmt)) { in pdo_mysql_stmt_next_rowset()
357 if (mysqlnd_stmt_next_result(S->stmt)) { in pdo_mysql_stmt_next_rowset()
361 if (!mysqlnd_stmt_more_results(S->stmt)) { in pdo_mysql_stmt_next_rowset()
372 if (S->result) { in pdo_mysql_stmt_next_rowset()
373 mysql_free_result(S->result); in pdo_mysql_stmt_next_rowset()
374 S->result = NULL; in pdo_mysql_stmt_next_rowset()
380 stmt->column_count = mysql_stmt_field_count(S->stmt); in pdo_mysql_stmt_next_rowset()
382 mysqlnd_stmt_bind_one_result(S->stmt, i); in pdo_mysql_stmt_next_rowset()
386 S->result = mysqlnd_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_next_rowset()
387 if (S->result) { in pdo_mysql_stmt_next_rowset()
388 S->fields = mysql_fetch_fields(S->result); in pdo_mysql_stmt_next_rowset()
392 if (mysql_stmt_store_result(S->stmt)) { in pdo_mysql_stmt_next_rowset()
397 row_count = (zend_long) mysql_stmt_affected_rows(S->stmt); in pdo_mysql_stmt_next_rowset()
407 if (S->stmt) { in pdo_mysql_stmt_next_rowset()
408 if (S->result) { in pdo_mysql_stmt_next_rowset()
409 stmt->column_count = (int)mysql_num_fields(S->result); in pdo_mysql_stmt_next_rowset()
411 mysql_stmt_free_result(S->stmt); in pdo_mysql_stmt_next_rowset()
414 if (S->result) { in pdo_mysql_stmt_next_rowset()
415 mysql_free_result(S->result); in pdo_mysql_stmt_next_rowset()
416 S->result = NULL; in pdo_mysql_stmt_next_rowset()
460 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_param_hook() local
463 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_param_hook()
465 if (S->stmt && param->is_param) { in pdo_mysql_stmt_param_hook()
469 if (param->paramno < 0 || param->paramno >= S->num_params) { in pdo_mysql_stmt_param_hook()
473 S->params_given++; in pdo_mysql_stmt_param_hook()
476 b = &S->params[param->paramno]; in pdo_mysql_stmt_param_hook()
478 b->is_null = &S->in_null[param->paramno]; in pdo_mysql_stmt_param_hook()
479 b->length = &S->in_length[param->paramno]; in pdo_mysql_stmt_param_hook()
485 if (S->params_given < (unsigned int) S->num_params) { in pdo_mysql_stmt_param_hook()
500 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_NULL); in pdo_mysql_stmt_param_hook()
554 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_VAR_STRING); in pdo_mysql_stmt_param_hook()
558 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_LONGLONG); in pdo_mysql_stmt_param_hook()
560 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_LONG); in pdo_mysql_stmt_param_hook()
565 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_TINY); in pdo_mysql_stmt_param_hook()
568 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_DOUBLE); in pdo_mysql_stmt_param_hook()
620 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; local
625 PDO_DBG_INF_FMT("stmt=%p", S->stmt);
626 if (S->stmt) {
627 if (FAIL == mysqlnd_stmt_fetch(S->stmt, &fetched_anything) || fetched_anything == FALSE) {
636 if (S->stmt) {
637 ret = mysql_stmt_fetch(S->stmt);
656 if (!S->result) {
661 if (!S->stmt && S->current_data) {
662 mnd_free(S->current_data);
666 if ((S->current_data = mysql_fetch_row(S->result)) == NULL) {
668 if (S->result->unbuf && !S->result->unbuf->eof_reached && mysql_errno(S->H->server)) {
670 if (!S->result->eof && mysql_errno(S->H->server)) {
677 S->current_lengths = mysql_fetch_lengths(S->result);
684 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; local
689 PDO_DBG_INF_FMT("stmt=%p", S->stmt);
690 if (!S->result) {
707 if (S->H->fetch_table_names) {
708 cols[i].name = strpprintf(0, "%s.%s", S->fields[i].table, S->fields[i].name);
710 cols[i].name = zend_string_init(S->fields[i].name, S->fields[i].name_length, 0);
713 cols[i].precision = S->fields[i].decimals;
714 cols[i].maxlen = S->fields[i].length;
717 if (S->stmt) {
731 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; local
734 PDO_DBG_INF_FMT("stmt=%p", S->stmt);
735 if (!S->result) {
740 if (!S->stmt) {
741 if (S->current_data == NULL || !S->result) {
751 if (S->stmt) {
752 Z_TRY_ADDREF(S->stmt->data->result_bind[colno].zv);
753 *ptr = (char*)&S->stmt->data->result_bind[colno].zv;
758 if (S->stmt) {
759 if (S->out_null[colno]) {
764 *ptr = S->bound_result[colno].buffer;
765 if (S->out_length[colno] > S->bound_result[colno].buffer_length) {
768 S->out_length[colno] = S->bound_result[colno].buffer_length;
769 *len = S->out_length[colno];
772 *len = S->out_length[colno];
776 *ptr = S->current_data[colno];
777 *len = S->current_lengths[colno];
832 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; local
838 PDO_DBG_INF_FMT("stmt=%p", S->stmt);
839 if (!S->result) {
850 F = S->fields + colno;
902 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; local
905 PDO_DBG_INF_FMT("stmt=%p", S->stmt);
906 if (S->result) {
907 mysql_free_result(S->result);
908 S->result = NULL;
910 if (S->stmt) {
912 retval = mysql_stmt_free_result(S->stmt);
916 while (mysql_more_results(S->H->server)) {
918 if (mysql_next_result(S->H->server) != 0) {
921 res = mysql_store_result(S->H->server);