Lines Matching refs:stmt

34 #	define pdo_mysql_stmt_execute_prepared(stmt) pdo_mysql_stmt_execute_prepared_mysqlnd(stmt)  argument
37 # define pdo_mysql_stmt_execute_prepared(stmt) pdo_mysql_stmt_execute_prepared_libmysql(stmt) argument
43 static int pdo_mysql_stmt_dtor(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_dtor() argument
45 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_dtor()
48 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_dtor()
55 pefree(S->einfo.errmsg, stmt->dbh->is_persistent); in pdo_mysql_stmt_dtor()
58 if (S->stmt) { in pdo_mysql_stmt_dtor()
59 mysql_stmt_close(S->stmt); in pdo_mysql_stmt_dtor()
60 S->stmt = NULL; in pdo_mysql_stmt_dtor()
77 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_dtor()
87 if (!Z_ISUNDEF(stmt->database_object_handle) in pdo_mysql_stmt_dtor()
88 && IS_OBJ_VALID(EG(objects_store).object_buckets[Z_OBJ_HANDLE(stmt->database_object_handle)]) in pdo_mysql_stmt_dtor()
89 && (!(OBJ_FLAGS(Z_OBJ(stmt->database_object_handle)) & IS_OBJ_FREE_CALLED))) { in pdo_mysql_stmt_dtor()
104 if (!S->stmt && S->current_data) { in pdo_mysql_stmt_dtor()
114 static void pdo_mysql_stmt_set_row_count(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_set_row_count() argument
117 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_set_row_count()
118 row_count = (zend_long) mysql_stmt_affected_rows(S->stmt); in pdo_mysql_stmt_set_row_count()
120 stmt->row_count = row_count; in pdo_mysql_stmt_set_row_count()
125 static int pdo_mysql_fill_stmt_from_result(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_fill_stmt_from_result() argument
127 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_fill_stmt_from_result()
142 pdo_mysql_error_stmt(stmt); in pdo_mysql_fill_stmt_from_result()
146 stmt->row_count = (zend_long) mysql_num_rows(S->result); in pdo_mysql_fill_stmt_from_result()
147 stmt->column_count = (int) mysql_num_fields(S->result); in pdo_mysql_fill_stmt_from_result()
151 stmt->row_count = (zend_long) row_count; in pdo_mysql_fill_stmt_from_result()
159 static int pdo_mysql_stmt_execute_prepared_libmysql(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_execute_prepared_libmysql() argument
161 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_execute_prepared_libmysql()
167 if (mysql_stmt_bind_param(S->stmt, S->params) || mysql_stmt_execute(S->stmt)) { in pdo_mysql_stmt_execute_prepared_libmysql()
171 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
172 if (mysql_stmt_errno(S->stmt) == 2057) { in pdo_mysql_stmt_execute_prepared_libmysql()
174 S->stmt = NULL; in pdo_mysql_stmt_execute_prepared_libmysql()
183 S->result = mysql_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
189 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_execute_prepared_libmysql()
197 stmt->column_count = (int)mysql_num_fields(S->result); in pdo_mysql_stmt_execute_prepared_libmysql()
198 S->bound_result = ecalloc(stmt->column_count, sizeof(MYSQL_BIND)); in pdo_mysql_stmt_execute_prepared_libmysql()
199 S->out_null = ecalloc(stmt->column_count, sizeof(my_bool)); in pdo_mysql_stmt_execute_prepared_libmysql()
200 S->out_length = ecalloc(stmt->column_count, sizeof(zend_ulong)); in pdo_mysql_stmt_execute_prepared_libmysql()
203 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_execute_prepared_libmysql()
206 mysql_stmt_attr_set(S->stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &on); in pdo_mysql_stmt_execute_prepared_libmysql()
251 if (mysql_stmt_bind_result(S->stmt, S->bound_result)) { in pdo_mysql_stmt_execute_prepared_libmysql()
252 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
258 if (mysql_stmt_store_result(S->stmt)) { in pdo_mysql_stmt_execute_prepared_libmysql()
259 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
266 pdo_mysql_stmt_set_row_count(stmt); in pdo_mysql_stmt_execute_prepared_libmysql()
273 static int pdo_mysql_stmt_execute_prepared_mysqlnd(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_execute_prepared_mysqlnd() argument
275 pdo_mysql_stmt *S = stmt->driver_data; in pdo_mysql_stmt_execute_prepared_mysqlnd()
281 if (mysql_stmt_execute(S->stmt)) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
282 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
293 stmt->column_count = mysql_stmt_field_count(S->stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
294 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
295 mysqlnd_stmt_bind_one_result(S->stmt, i); in pdo_mysql_stmt_execute_prepared_mysqlnd()
298 S->result = mysqlnd_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
303 if (mysql_stmt_store_result(S->stmt)) { in pdo_mysql_stmt_execute_prepared_mysqlnd()
304 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
310 pdo_mysql_stmt_set_row_count(stmt); in pdo_mysql_stmt_execute_prepared_mysqlnd()
316 static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_execute() argument
318 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; 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()
324 PDO_DBG_RETURN(pdo_mysql_stmt_execute_prepared(stmt)); in pdo_mysql_stmt_execute()
333 if (mysql_real_query(H->server, stmt->active_query_string, stmt->active_query_stringlen) != 0) { in pdo_mysql_stmt_execute()
334 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_execute()
338 PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt)); in pdo_mysql_stmt_execute()
342 static int pdo_mysql_stmt_next_rowset(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_next_rowset() argument
344 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_next_rowset()
350 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_next_rowset()
353 if (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()
358 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_next_rowset()
362 if (!mysqlnd_stmt_more_results(S->stmt)) { in pdo_mysql_stmt_next_rowset()
381 stmt->column_count = mysql_stmt_field_count(S->stmt); in pdo_mysql_stmt_next_rowset()
382 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_next_rowset()
383 mysqlnd_stmt_bind_one_result(S->stmt, i); in pdo_mysql_stmt_next_rowset()
387 S->result = mysqlnd_stmt_result_metadata(S->stmt); in pdo_mysql_stmt_next_rowset()
393 if (mysql_stmt_store_result(S->stmt)) { in pdo_mysql_stmt_next_rowset()
394 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_next_rowset()
399 row_count = (zend_long) mysql_stmt_affected_rows(S->stmt); in pdo_mysql_stmt_next_rowset()
401 stmt->row_count = row_count; in pdo_mysql_stmt_next_rowset()
409 if (S->stmt) { in pdo_mysql_stmt_next_rowset()
411 stmt->column_count = (int)mysql_num_fields(S->result); in pdo_mysql_stmt_next_rowset()
413 mysql_stmt_free_result(S->stmt); in pdo_mysql_stmt_next_rowset()
427 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_next_rowset()
430 PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt)); in pdo_mysql_stmt_next_rowset()
434 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_next_rowset()
437 PDO_DBG_RETURN(pdo_mysql_fill_stmt_from_result(stmt)); in pdo_mysql_stmt_next_rowset()
456 static int pdo_mysql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *param, enum pdo… in pdo_mysql_stmt_param_hook() argument
462 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_param_hook()
465 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_param_hook()
467 if (S->stmt && param->is_param) { in pdo_mysql_stmt_param_hook()
472 strcpy(stmt->error_code, "HY093"); in pdo_mysql_stmt_param_hook()
490 strcpy(stmt->error_code, "HY093"); in pdo_mysql_stmt_param_hook()
502 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_NULL); in pdo_mysql_stmt_param_hook()
536 pdo_raise_impl_error(stmt->dbh, stmt, "HY105", "Expected a stream resource"); in pdo_mysql_stmt_param_hook()
556 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_VAR_STRING); in pdo_mysql_stmt_param_hook()
560 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_LONGLONG); in pdo_mysql_stmt_param_hook()
562 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_LONG); in pdo_mysql_stmt_param_hook()
567 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_TINY); in pdo_mysql_stmt_param_hook()
570 mysqlnd_stmt_bind_one_param(S->stmt, param->paramno, parameter, MYSQL_TYPE_DOUBLE); in pdo_mysql_stmt_param_hook()
620 static int pdo_mysql_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, zend_long offset)… in pdo_mysql_stmt_fetch() argument
622 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_fetch()
632 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_fetch()
633 if (S->stmt) { in pdo_mysql_stmt_fetch()
634 if (FAIL == mysqlnd_stmt_fetch(S->stmt, &fetched_anything) || fetched_anything == FALSE) { in pdo_mysql_stmt_fetch()
635 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_fetch()
642 if (!S->stmt && S->current_data) { in pdo_mysql_stmt_fetch()
648 if (S->stmt) { in pdo_mysql_stmt_fetch()
649 ret = mysql_stmt_fetch(S->stmt); in pdo_mysql_stmt_fetch()
659 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_fetch()
670 pdo_mysql_error_stmt(stmt); in pdo_mysql_stmt_fetch()
680 static int pdo_mysql_stmt_describe(pdo_stmt_t *stmt, int colno) /* {{{ */ in pdo_mysql_stmt_describe() argument
682 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_describe()
683 struct pdo_column_data *cols = stmt->columns; in pdo_mysql_stmt_describe()
687 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_describe()
692 if (colno >= stmt->column_count) { in pdo_mysql_stmt_describe()
703 for (i = 0; i < stmt->column_count; i++) { in pdo_mysql_stmt_describe()
715 if (S->stmt) { in pdo_mysql_stmt_describe()
727 static int pdo_mysql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, size_t *len, int *caller… in pdo_mysql_stmt_get_col() argument
729 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_get_col()
732 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_get_col()
738 if (!S->stmt) { in pdo_mysql_stmt_get_col()
744 if (colno >= stmt->column_count) { in pdo_mysql_stmt_get_col()
749 if (S->stmt) { in pdo_mysql_stmt_get_col()
750 Z_TRY_ADDREF(S->stmt->data->result_bind[colno].zv); in pdo_mysql_stmt_get_col()
751 *ptr = (char*)&S->stmt->data->result_bind[colno].zv; in pdo_mysql_stmt_get_col()
756 if (S->stmt) { in pdo_mysql_stmt_get_col()
765 strcpy(stmt->error_code, "01004"); /* truncated */ in pdo_mysql_stmt_get_col()
828 static int pdo_mysql_stmt_col_meta(pdo_stmt_t *stmt, zend_long colno, zval *return_value) /* {{{ */ in pdo_mysql_stmt_col_meta() argument
830 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_col_meta()
836 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_col_meta()
840 if (colno >= stmt->column_count) { in pdo_mysql_stmt_col_meta()
898 static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt) /* {{{ */ in pdo_mysql_stmt_cursor_closer() argument
900 pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data; in pdo_mysql_stmt_cursor_closer()
903 PDO_DBG_INF_FMT("stmt=%p", S->stmt); in pdo_mysql_stmt_cursor_closer()
908 if (S->stmt) { in pdo_mysql_stmt_cursor_closer()
910 retval = mysql_stmt_free_result(S->stmt); in pdo_mysql_stmt_cursor_closer()