Lines Matching refs:stmt

111   pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(getThis() TSRMLS_CC);	\  in ZEND_END_ARG_INFO()
112 if (!stmt->dbh) { \
122 static inline int rewrite_name_to_position(pdo_stmt_t *stmt, struct pdo_bound_param_data *param TSR… in rewrite_name_to_position() argument
124 if (stmt->bound_param_map) { in rewrite_name_to_position()
134 if (stmt->named_rewrite_template) { in rewrite_name_to_position()
140 if (SUCCESS == zend_hash_index_find(stmt->bound_param_map, param->paramno, (void**)&name)) { in rewrite_name_to_position()
145 pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined" TSRMLS_CC); in rewrite_name_to_position()
149 zend_hash_internal_pointer_reset(stmt->bound_param_map); in rewrite_name_to_position()
150 while (SUCCESS == zend_hash_get_current_data(stmt->bound_param_map, (void**)&name)) { in rewrite_name_to_position()
153 zend_hash_move_forward(stmt->bound_param_map); in rewrite_name_to_position()
157 …pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "PDO refuses to handle repeating the same :named pa… in rewrite_name_to_position()
163 pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "parameter was not defined" TSRMLS_CC); in rewrite_name_to_position()
171 static int dispatch_param_event(pdo_stmt_t *stmt, enum pdo_param_event event_type TSRMLS_DC) /* {{{… in dispatch_param_event() argument
177 if (!stmt->methods->param_hook) { in dispatch_param_event()
181 ht = stmt->bound_params; in dispatch_param_event()
187 if (!stmt->methods->param_hook(stmt, param, event_type TSRMLS_CC)) { in dispatch_param_event()
196 ht = stmt->bound_columns; in dispatch_param_event()
205 int pdo_stmt_describe_columns(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */ in pdo_stmt_describe_columns()
209 stmt->columns = ecalloc(stmt->column_count, sizeof(struct pdo_column_data)); in pdo_stmt_describe_columns()
211 for (col = 0; col < stmt->column_count; col++) { in pdo_stmt_describe_columns()
212 if (!stmt->methods->describer(stmt, col TSRMLS_CC)) { in pdo_stmt_describe_columns()
217 …if (stmt->dbh->native_case != stmt->dbh->desired_case && stmt->dbh->desired_case != PDO_CASE_NATUR… in pdo_stmt_describe_columns()
218 char *s = stmt->columns[col].name; in pdo_stmt_describe_columns()
220 switch (stmt->dbh->desired_case) { in pdo_stmt_describe_columns()
240 if (stmt->bound_params) { in pdo_stmt_describe_columns()
243 if (SUCCESS == zend_hash_find(stmt->bound_params, stmt->columns[col].name, in pdo_stmt_describe_columns()
244 stmt->columns[col].namelen, (void**)&param)) { in pdo_stmt_describe_columns()
249 if (stmt->bound_columns) { in pdo_stmt_describe_columns()
252 if (SUCCESS == zend_hash_find(stmt->bound_columns, stmt->columns[col].name, in pdo_stmt_describe_columns()
253 stmt->columns[col].namelen, (void**)&param)) { in pdo_stmt_describe_columns()
263 static void get_lazy_object(pdo_stmt_t *stmt, zval *return_value TSRMLS_DC) /* {{{ */ in get_lazy_object() argument
265 if (Z_TYPE(stmt->lazy_object_ref) == IS_NULL) { in get_lazy_object()
266 Z_TYPE(stmt->lazy_object_ref) = IS_OBJECT; in get_lazy_object()
267 …Z_OBJ_HANDLE(stmt->lazy_object_ref) = zend_objects_store_put(stmt, (zend_objects_store_dtor_t)zend… in get_lazy_object()
268 Z_OBJ_HT(stmt->lazy_object_ref) = &pdo_row_object_handlers; in get_lazy_object()
269 stmt->refcount++; in get_lazy_object()
272 Z_OBJ_HANDLE_P(return_value) = Z_OBJ_HANDLE(stmt->lazy_object_ref); in get_lazy_object()
273 Z_OBJ_HT_P(return_value) = Z_OBJ_HT(stmt->lazy_object_ref); in get_lazy_object()
284 if (param->stmt->methods->param_hook) { in param_dtor()
285 param->stmt->methods->param_hook(param->stmt, param, PDO_PARAM_EVT_FREE TSRMLS_CC); in param_dtor()
302 static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_stmt_t *stmt, int is… in really_register_bound_param() argument
307 hash = is_param ? stmt->bound_params : stmt->bound_columns; in really_register_bound_param()
314 stmt->bound_params = hash; in really_register_bound_param()
316 stmt->bound_columns = hash; in really_register_bound_param()
334 param->stmt = stmt; in really_register_bound_param()
341 if (!is_param && param->name && stmt->columns) { in really_register_bound_param()
345 for (i = 0; i < stmt->column_count; i++) { in really_register_bound_param()
346 if (strcmp(stmt->columns[i].name, param->name) == 0) { in really_register_bound_param()
357 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", tmp TSRMLS_CC); in really_register_bound_param()
373 if (is_param && !rewrite_name_to_position(stmt, param TSRMLS_CC)) { in really_register_bound_param()
385 if (stmt->methods->param_hook) { in really_register_bound_param()
386 if (!stmt->methods->param_hook(stmt, param, PDO_PARAM_EVT_NORMALIZE in really_register_bound_param()
413 if (stmt->methods->param_hook) { in really_register_bound_param()
414 if (!stmt->methods->param_hook(stmt, pparam, PDO_PARAM_EVT_ALLOC in really_register_bound_param()
452 if (stmt->bound_params) { in PHP_METHOD()
453 zend_hash_destroy(stmt->bound_params); in PHP_METHOD()
454 FREE_HASHTABLE(stmt->bound_params); in PHP_METHOD()
455 stmt->bound_params = NULL; in PHP_METHOD()
470 pdo_raise_impl_error(stmt->dbh, stmt, "HY093", NULL TSRMLS_CC); in PHP_METHOD()
480 if (!really_register_bound_param(&param, stmt, 1 TSRMLS_CC)) { in PHP_METHOD()
491 if (PDO_PLACEHOLDER_NONE == stmt->supports_placeholders) { in PHP_METHOD()
497 ret = pdo_parse_params(stmt, stmt->query_string, stmt->query_stringlen, in PHP_METHOD()
498 &stmt->active_query_string, &stmt->active_query_stringlen TSRMLS_CC); in PHP_METHOD()
502 stmt->active_query_string = stmt->query_string; in PHP_METHOD()
503 stmt->active_query_stringlen = stmt->query_stringlen; in PHP_METHOD()
510 } else if (!dispatch_param_event(stmt, PDO_PARAM_EVT_EXEC_PRE TSRMLS_CC)) { in PHP_METHOD()
514 if (stmt->methods->executer(stmt TSRMLS_CC)) { in PHP_METHOD()
515 if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) { in PHP_METHOD()
516 efree(stmt->active_query_string); in PHP_METHOD()
518 stmt->active_query_string = NULL; in PHP_METHOD()
519 if (!stmt->executed) { in PHP_METHOD()
522 if (stmt->dbh->alloc_own_columns && !stmt->columns) { in PHP_METHOD()
525 ret = pdo_stmt_describe_columns(stmt TSRMLS_CC); in PHP_METHOD()
528 stmt->executed = 1; in PHP_METHOD()
531 if (ret && !dispatch_param_event(stmt, PDO_PARAM_EVT_EXEC_POST TSRMLS_CC)) { in PHP_METHOD()
537 if (stmt->active_query_string && stmt->active_query_string != stmt->query_string) { in PHP_METHOD()
538 efree(stmt->active_query_string); in PHP_METHOD()
540 stmt->active_query_string = NULL; in PHP_METHOD()
546 static inline void fetch_value(pdo_stmt_t *stmt, zval *dest, int colno, int *type_override TSRMLS_D… in fetch_value() argument
554 col = &stmt->columns[colno]; in fetch_value()
561 stmt->methods->get_col(stmt, colno, &value, &value_len, &caller_frees TSRMLS_CC); in fetch_value()
566 int need_copy = (new_type != PDO_PARAM_ZVAL || stmt->dbh->stringify) ? 1 : 0; in fetch_value()
599 if (stmt->dbh->stringify || new_type == PDO_PARAM_STR) { in fetch_value()
612 } else if (!stmt->dbh->stringify && new_type != PDO_PARAM_STR) { in fetch_value()
640 if (value && !(value_len == 0 && stmt->dbh->oracle_nulls == PDO_NULL_EMPTY_STRING)) { in fetch_value()
674 if (stmt->dbh->stringify) { in fetch_value()
683 if (Z_TYPE_P(dest) == IS_NULL && stmt->dbh->oracle_nulls == PDO_NULL_TO_STRING) { in fetch_value()
689 static int do_fetch_common(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori, in do_fetch_common() argument
692 if (!stmt->executed) { in do_fetch_common()
696 if (!dispatch_param_event(stmt, PDO_PARAM_EVT_FETCH_PRE TSRMLS_CC)) { in do_fetch_common()
700 if (!stmt->methods->fetcher(stmt, ori, offset TSRMLS_CC)) { in do_fetch_common()
705 if (!stmt->columns && !pdo_stmt_describe_columns(stmt TSRMLS_CC)) { in do_fetch_common()
709 if (!dispatch_param_event(stmt, PDO_PARAM_EVT_FETCH_POST TSRMLS_CC)) { in do_fetch_common()
713 if (do_bind && stmt->bound_columns) { in do_fetch_common()
717 zend_hash_internal_pointer_reset(stmt->bound_columns); in do_fetch_common()
718 while (SUCCESS == zend_hash_get_current_data(stmt->bound_columns, (void**)&param)) { in do_fetch_common()
726 fetch_value(stmt, param->parameter, param->paramno, (int *)&param->param_type TSRMLS_CC); in do_fetch_common()
734 zend_hash_move_forward(stmt->bound_columns); in do_fetch_common()
742 static int do_fetch_class_prepare(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */ in do_fetch_class_prepare()
744 zend_class_entry * ce = stmt->fetch.cls.ce; in do_fetch_class_prepare()
745 zend_fcall_info * fci = &stmt->fetch.cls.fci; in do_fetch_class_prepare()
746 zend_fcall_info_cache * fcc = &stmt->fetch.cls.fcc; in do_fetch_class_prepare()
751 stmt->fetch.cls.ce = ZEND_STANDARD_CLASS_DEF_PTR; in do_fetch_class_prepare()
759 fci->retval_ptr_ptr = &stmt->fetch.cls.retval_ptr; in do_fetch_class_prepare()
760 if (stmt->fetch.cls.ctor_args) { in do_fetch_class_prepare()
761 HashTable *ht = Z_ARRVAL_P(stmt->fetch.cls.ctor_args); in do_fetch_class_prepare()
782 } else if (stmt->fetch.cls.ctor_args) { in do_fetch_class_prepare()
783 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "user-supplied class does not have a constructor, u… in do_fetch_class_prepare()
791 static int make_callable_ex(pdo_stmt_t *stmt, zval *callable, zend_fcall_info * fci, zend_fcall_inf… in make_callable_ex() argument
797 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", is_callable_error TSRMLS_CC); in make_callable_ex()
800 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "user-supplied function must be a valid callback" T… in make_callable_ex()
816 static int do_fetch_func_prepare(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */ in do_fetch_func_prepare()
818 zend_fcall_info * fci = &stmt->fetch.cls.fci; in do_fetch_func_prepare()
819 zend_fcall_info_cache * fcc = &stmt->fetch.cls.fcc; in do_fetch_func_prepare()
821 if (!make_callable_ex(stmt, stmt->fetch.func.function, fci, fcc, stmt->column_count TSRMLS_CC)) { in do_fetch_func_prepare()
824 stmt->fetch.func.values = safe_emalloc(sizeof(zval*), stmt->column_count, 0); in do_fetch_func_prepare()
830 static int do_fetch_opt_finish(pdo_stmt_t *stmt, int free_ctor_agrs TSRMLS_DC) /* {{{ */ in do_fetch_opt_finish() argument
833 if (stmt->fetch.cls.fci.size && stmt->fetch.cls.fci.params) { in do_fetch_opt_finish()
834 efree(stmt->fetch.cls.fci.params); in do_fetch_opt_finish()
835 stmt->fetch.cls.fci.params = NULL; in do_fetch_opt_finish()
837 stmt->fetch.cls.fci.size = 0; in do_fetch_opt_finish()
838 if (stmt->fetch.cls.ctor_args && free_ctor_agrs) { in do_fetch_opt_finish()
839 zval_ptr_dtor(&stmt->fetch.cls.ctor_args); in do_fetch_opt_finish()
840 stmt->fetch.cls.ctor_args = NULL; in do_fetch_opt_finish()
841 stmt->fetch.cls.fci.param_count = 0; in do_fetch_opt_finish()
843 if (stmt->fetch.func.values) { in do_fetch_opt_finish()
844 efree(stmt->fetch.func.values); in do_fetch_opt_finish()
845 stmt->fetch.func.values = NULL; in do_fetch_opt_finish()
853 static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value, in do_fetch() argument
862 how = stmt->default_fetch_type; in do_fetch()
867 if (!do_fetch_common(stmt, ori, offset, do_bind TSRMLS_CC)) { in do_fetch()
876 if (flags & PDO_FETCH_GROUP && stmt->fetch.column == -1) { in do_fetch()
879 colno = stmt->fetch.column; in do_fetch()
886 get_lazy_object(stmt, return_value TSRMLS_CC); in do_fetch()
900 zend_hash_init(return_value->value.ht, stmt->column_count, NULL, ZVAL_PTR_DTOR, 0); in do_fetch()
908 if (stmt->column_count != 2) { in do_fetch()
909 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "PDO::FETCH_KEY_PAIR fetch mode requires the result… in do_fetch()
918 if (colno >= 0 && colno < stmt->column_count) { in do_fetch()
919 if (flags == PDO_FETCH_GROUP && stmt->fetch.column == -1) { in do_fetch()
920 fetch_value(stmt, return_value, 1, NULL TSRMLS_CC); in do_fetch()
922 fetch_value(stmt, return_value, 0, NULL TSRMLS_CC); in do_fetch()
924 fetch_value(stmt, return_value, colno, NULL TSRMLS_CC); in do_fetch()
932 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "Invalid column index" TSRMLS_CC); in do_fetch()
945 old_ce = stmt->fetch.cls.ce; in do_fetch()
946 old_ctor_args = stmt->fetch.cls.ctor_args; in do_fetch()
947 old_arg_count = stmt->fetch.cls.fci.param_count; in do_fetch()
948 do_fetch_opt_finish(stmt, 0 TSRMLS_CC); in do_fetch()
951 fetch_value(stmt, &val, i++, NULL TSRMLS_CC); in do_fetch()
955 stmt->fetch.cls.ce = ZEND_STANDARD_CLASS_DEF_PTR; in do_fetch()
957 stmt->fetch.cls.ce = *cep; in do_fetch()
961 do_fetch_class_prepare(stmt TSRMLS_CC); in do_fetch()
964 ce = stmt->fetch.cls.ce; in do_fetch()
966 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "No fetch class specified" TSRMLS_CC); in do_fetch()
971 if (!stmt->fetch.cls.fci.size) { in do_fetch()
972 if (!do_fetch_class_prepare(stmt TSRMLS_CC)) in do_fetch()
978 stmt->fetch.cls.fci.object_ptr = return_value; in do_fetch()
979 stmt->fetch.cls.fcc.object_ptr = return_value; in do_fetch()
980 if (zend_call_function(&stmt->fetch.cls.fci, &stmt->fetch.cls.fcc TSRMLS_CC) == FAILURE) { in do_fetch()
981 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not call class constructor" TSRMLS_CC); in do_fetch()
984 if (stmt->fetch.cls.retval_ptr) { in do_fetch()
985 zval_ptr_dtor(&stmt->fetch.cls.retval_ptr); in do_fetch()
993 if (!stmt->fetch.into) { in do_fetch()
994 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "No fetch-into object specified." TSRMLS_CC); in do_fetch()
1000 Z_OBJ_HANDLE_P(return_value) = Z_OBJ_HANDLE_P(stmt->fetch.into); in do_fetch()
1001 Z_OBJ_HT_P(return_value) = Z_OBJ_HT_P(stmt->fetch.into); in do_fetch()
1002 zend_objects_store_add_ref(stmt->fetch.into TSRMLS_CC); in do_fetch()
1010 if (!stmt->fetch.func.function) { in do_fetch()
1011 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "No fetch function specified" TSRMLS_CC); in do_fetch()
1014 if (!stmt->fetch.func.fci.size) { in do_fetch()
1015 if (!do_fetch_func_prepare(stmt TSRMLS_CC)) in do_fetch()
1030 if (flags == PDO_FETCH_GROUP && how == PDO_FETCH_COLUMN && stmt->fetch.column > 0) { in do_fetch()
1031 fetch_value(stmt, &grp_val, colno, NULL TSRMLS_CC); in do_fetch()
1033 fetch_value(stmt, &grp_val, i, NULL TSRMLS_CC); in do_fetch()
1037 i = stmt->column_count; /* no more data to fetch */ in do_fetch()
1043 for (idx = 0; i < stmt->column_count; i++, idx++) { in do_fetch()
1046 fetch_value(stmt, val, i, NULL TSRMLS_CC); in do_fetch()
1050 add_assoc_zval(return_value, stmt->columns[i].name, val); in do_fetch()
1057 fetch_value(stmt, tmp, ++i, NULL TSRMLS_CC); in do_fetch()
1072 add_assoc_zval(return_value, stmt->columns[i].name, val); in do_fetch()
1081 if (zend_hash_find(Z_ARRVAL_P(return_value), stmt->columns[i].name, in do_fetch()
1082 strlen(stmt->columns[i].name)+1, in do_fetch()
1109 add_assoc_zval(return_value, stmt->columns[i].name, val); in do_fetch()
1121 stmt->columns[i].name, stmt->columns[i].namelen, in do_fetch()
1129 stmt->columns[i].name, stmt->columns[i].namelen, in do_fetch()
1138 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "cannot unserialize data" TSRMLS_CC); in do_fetch()
1146 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "cannot unserialize class" TSRMLS_CC); in do_fetch()
1150 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "cannot unserialize class" TSRMLS_CC); in do_fetch()
1161 stmt->fetch.func.values[idx] = val; in do_fetch()
1162 stmt->fetch.cls.fci.params[idx] = &stmt->fetch.func.values[idx]; in do_fetch()
1167 pdo_raise_impl_error(stmt->dbh, stmt, "22003", "mode is out of range" TSRMLS_CC); in do_fetch()
1176 stmt->fetch.cls.fci.object_ptr = return_value; in do_fetch()
1177 stmt->fetch.cls.fcc.object_ptr = return_value; in do_fetch()
1178 if (zend_call_function(&stmt->fetch.cls.fci, &stmt->fetch.cls.fcc TSRMLS_CC) == FAILURE) { in do_fetch()
1179 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not call class constructor" TSRMLS_CC); in do_fetch()
1182 if (stmt->fetch.cls.retval_ptr) { in do_fetch()
1183 zval_ptr_dtor(&stmt->fetch.cls.retval_ptr); in do_fetch()
1188 do_fetch_opt_finish(stmt, 0 TSRMLS_CC); in do_fetch()
1189 stmt->fetch.cls.ce = old_ce; in do_fetch()
1190 stmt->fetch.cls.ctor_args = old_ctor_args; in do_fetch()
1191 stmt->fetch.cls.fci.param_count = old_arg_count; in do_fetch()
1196 stmt->fetch.func.fci.param_count = idx; in do_fetch()
1197 stmt->fetch.func.fci.retval_ptr_ptr = &retval; in do_fetch()
1198 if (zend_call_function(&stmt->fetch.func.fci, &stmt->fetch.func.fcc TSRMLS_CC) == FAILURE) { in do_fetch()
1199 … pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not call user-supplied function" TSRMLS_CC); in do_fetch()
1211 zval_ptr_dtor(&stmt->fetch.func.values[idx]); in do_fetch()
1241 static int pdo_stmt_verify_mode(pdo_stmt_t *stmt, long mode, int fetch_all TSRMLS_DC) /* {{{ */ in pdo_stmt_verify_mode() argument
1248 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "invalid fetch mode" TSRMLS_CC); in pdo_stmt_verify_mode()
1253 flags = stmt->default_fetch_type & PDO_FETCH_FLAGS; in pdo_stmt_verify_mode()
1254 mode = stmt->default_fetch_type & ~PDO_FETCH_FLAGS; in pdo_stmt_verify_mode()
1260 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "PDO::FETCH_FUNC is only allowed in PDOStatement::f… in pdo_stmt_verify_mode()
1267 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "PDO::FETCH_LAZY can't be used with PDOStatement::f… in pdo_stmt_verify_mode()
1274 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "PDO::FETCH_SERIALIZE can only be used together wit… in pdo_stmt_verify_mode()
1278 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "PDO::FETCH_CLASSTYPE can only be used together wit… in pdo_stmt_verify_mode()
1282 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "invalid fetch mode" TSRMLS_CC); in pdo_stmt_verify_mode()
1309 if (!pdo_stmt_verify_mode(stmt, how, 0 TSRMLS_CC)) { in PHP_METHOD()
1313 if (!do_fetch(stmt, TRUE, return_value, how, ori, off, 0 TSRMLS_CC)) { in PHP_METHOD()
1341 if (!pdo_stmt_verify_mode(stmt, how, 0 TSRMLS_CC)) { in PHP_METHOD()
1345 old_ce = stmt->fetch.cls.ce; in PHP_METHOD()
1346 old_ctor_args = stmt->fetch.cls.ctor_args; in PHP_METHOD()
1347 old_arg_count = stmt->fetch.cls.fci.param_count; in PHP_METHOD()
1349 do_fetch_opt_finish(stmt, 0 TSRMLS_CC); in PHP_METHOD()
1353 ALLOC_ZVAL(stmt->fetch.cls.ctor_args); in PHP_METHOD()
1354 *stmt->fetch.cls.ctor_args = *ctor_args; in PHP_METHOD()
1355 zval_copy_ctor(stmt->fetch.cls.ctor_args); in PHP_METHOD()
1357 stmt->fetch.cls.ctor_args = NULL; in PHP_METHOD()
1361stmt->fetch.cls.ce = zend_fetch_class(class_name, class_name_len, ZEND_FETCH_CLASS_AUTO TSRMLS_CC); in PHP_METHOD()
1363 if (!stmt->fetch.cls.ce) { in PHP_METHOD()
1364 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "Could not find user-supplied class" TSRMLS_CC); in PHP_METHOD()
1368 stmt->fetch.cls.ce = zend_standard_class_def; in PHP_METHOD()
1371 if (!error && !do_fetch(stmt, TRUE, return_value, how, ori, off, 0 TSRMLS_CC)) { in PHP_METHOD()
1377 do_fetch_opt_finish(stmt, 1 TSRMLS_CC); in PHP_METHOD()
1379 stmt->fetch.cls.ce = old_ce; in PHP_METHOD()
1380 stmt->fetch.cls.ctor_args = old_ctor_args; in PHP_METHOD()
1381 stmt->fetch.cls.fci.param_count = old_arg_count; in PHP_METHOD()
1401 if (!do_fetch_common(stmt, PDO_FETCH_ORI_NEXT, 0, TRUE TSRMLS_CC)) { in PHP_METHOD()
1406 fetch_value(stmt, return_value, col_n, NULL TSRMLS_CC); in PHP_METHOD()
1426 if (!pdo_stmt_verify_mode(stmt, how, 1 TSRMLS_CC)) { in PHP_METHOD()
1430 old_ce = stmt->fetch.cls.ce; in PHP_METHOD()
1431 old_ctor_args = stmt->fetch.cls.ctor_args; in PHP_METHOD()
1432 old_arg_count = stmt->fetch.cls.fci.param_count; in PHP_METHOD()
1434 do_fetch_opt_finish(stmt, 0 TSRMLS_CC); in PHP_METHOD()
1441 stmt->fetch.cls.ce = zend_standard_class_def; in PHP_METHOD()
1445 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "ctor_args must be either NULL or an array" TSRMLS_… in PHP_METHOD()
1454 stmt->fetch.cls.ctor_args = ctor_args; /* we're not going to free these */ in PHP_METHOD()
1456 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "Invalid class name (should be a string)" TSRMLS_CC… in PHP_METHOD()
1460stmt->fetch.cls.ce = zend_fetch_class(Z_STRVAL_P(arg2), Z_STRLEN_P(arg2), ZEND_FETCH_CLASS_AUTO TS… in PHP_METHOD()
1461 if (!stmt->fetch.cls.ce) { in PHP_METHOD()
1462 … pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not find user-specified class" TSRMLS_CC); in PHP_METHOD()
1469 do_fetch_class_prepare(stmt TSRMLS_CC); in PHP_METHOD()
1477 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "no fetch function specified" TSRMLS_CC); in PHP_METHOD()
1482 stmt->fetch.func.function = arg2; in PHP_METHOD()
1483 if (do_fetch_func_prepare(stmt TSRMLS_CC) == 0) { in PHP_METHOD()
1494 stmt->fetch.column = how & PDO_FETCH_GROUP ? -1 : 0; in PHP_METHOD()
1498 stmt->fetch.column = Z_LVAL_P(arg2); in PHP_METHOD()
1501 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "Third parameter not allowed for PDO::FETCH_COLUMN"… in PHP_METHOD()
1508 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "Extraneous additional parameters" TSRMLS_CC); in PHP_METHOD()
1516 flags |= stmt->default_fetch_type & PDO_FETCH_FLAGS; in PHP_METHOD()
1517 how |= stmt->default_fetch_type & ~PDO_FETCH_FLAGS; in PHP_METHOD()
1524 (how == PDO_FETCH_USE_DEFAULT && stmt->default_fetch_type == PDO_FETCH_KEY_PAIR) in PHP_METHOD()
1531 if (!do_fetch(stmt, TRUE, data, how | flags, PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC)) { in PHP_METHOD()
1540 } while (do_fetch(stmt, TRUE, data, how | flags, PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC)); in PHP_METHOD()
1541 …} else if (how == PDO_FETCH_KEY_PAIR || (how == PDO_FETCH_USE_DEFAULT && stmt->default_fetch_type … in PHP_METHOD()
1542 while (do_fetch(stmt, TRUE, data, how | flags, PDO_FETCH_ORI_NEXT, 0, return_all TSRMLS_CC)); in PHP_METHOD()
1548 } while (do_fetch(stmt, TRUE, data, how | flags, PDO_FETCH_ORI_NEXT, 0, 0 TSRMLS_CC)); in PHP_METHOD()
1553 do_fetch_opt_finish(stmt, 0 TSRMLS_CC); in PHP_METHOD()
1555 stmt->fetch.cls.ce = old_ce; in PHP_METHOD()
1556 stmt->fetch.cls.ctor_args = old_ctor_args; in PHP_METHOD()
1557 stmt->fetch.cls.fci.param_count = old_arg_count; in PHP_METHOD()
1573 static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, int is_param) /* {{… in register_bound_param() argument
1595 pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "Columns/Parameters are 1-based" TSRMLS_CC); in register_bound_param()
1600 if (!really_register_bound_param(&param, stmt, is_param TSRMLS_CC)) { in register_bound_param()
1633 pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "Columns/Parameters are 1-based" TSRMLS_CC); in PHP_METHOD()
1638 if (!really_register_bound_param(&param, stmt, TRUE TSRMLS_CC)) { in PHP_METHOD()
1655 RETURN_BOOL(register_bound_param(INTERNAL_FUNCTION_PARAM_PASSTHRU, stmt, TRUE)); in PHP_METHOD()
1664 RETURN_BOOL(register_bound_param(INTERNAL_FUNCTION_PARAM_PASSTHRU, stmt, FALSE)); in PHP_METHOD()
1674 RETURN_LONG(stmt->row_count); in PHP_METHOD()
1688 if (stmt->error_code[0] == '\0') { in PHP_METHOD()
1692 RETURN_STRING(stmt->error_code, 1); in PHP_METHOD()
1711 add_next_index_string(return_value, stmt->error_code, 1); in PHP_METHOD()
1713 if (stmt->dbh->methods->fetch_err) { in PHP_METHOD()
1714 stmt->dbh->methods->fetch_err(stmt->dbh, stmt, return_value TSRMLS_CC); in PHP_METHOD()
1742 if (!stmt->methods->set_attribute) { in PHP_METHOD()
1747 if (stmt->methods->set_attribute(stmt, attr, value TSRMLS_CC)) { in PHP_METHOD()
1752 if (!stmt->methods->set_attribute) { in PHP_METHOD()
1753 …pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "This driver doesn't support setting attributes" TS… in PHP_METHOD()
1764 static int generic_stmt_attr_get(pdo_stmt_t *stmt, zval *return_value, long attr) in generic_stmt_attr_get() argument
1768 RETVAL_BOOL(stmt->supports_placeholders == PDO_PLACEHOLDER_NONE); in generic_stmt_attr_get()
1783 if (!stmt->methods->get_attribute) { in PHP_METHOD()
1784 if (!generic_stmt_attr_get(stmt, return_value, attr)) { in PHP_METHOD()
1785 pdo_raise_impl_error(stmt->dbh, stmt, "IM001", in PHP_METHOD()
1793 switch (stmt->methods->get_attribute(stmt, attr, return_value TSRMLS_CC)) { in PHP_METHOD()
1799 if (!generic_stmt_attr_get(stmt, return_value, attr)) { in PHP_METHOD()
1801 pdo_raise_impl_error(stmt->dbh, stmt, "IM001", in PHP_METHOD()
1821 RETURN_LONG(stmt->column_count); in PHP_METHOD()
1837 pdo_raise_impl_error(stmt->dbh, stmt, "42P10", "column number must be non-negative" TSRMLS_CC); in PHP_METHOD()
1841 if (!stmt->methods->get_column_meta) { in PHP_METHOD()
1842 pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "driver doesn't support meta data" TSRMLS_CC); in PHP_METHOD()
1847 if (FAILURE == stmt->methods->get_column_meta(stmt, colno, return_value TSRMLS_CC)) { in PHP_METHOD()
1853 col = &stmt->columns[colno]; in PHP_METHOD()
1867 int pdo_stmt_setup_fetch_mode(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, int skip) in pdo_stmt_setup_fetch_mode() argument
1875 do_fetch_opt_finish(stmt, 1 TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1877 switch (stmt->default_fetch_type) { in pdo_stmt_setup_fetch_mode()
1879 if (stmt->fetch.into) { in pdo_stmt_setup_fetch_mode()
1880 zval_ptr_dtor(&stmt->fetch.into); in pdo_stmt_setup_fetch_mode()
1881 stmt->fetch.into = NULL; in pdo_stmt_setup_fetch_mode()
1888 stmt->default_fetch_type = PDO_FETCH_BOTH; in pdo_stmt_setup_fetch_mode()
1900 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "mode must be an integer" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1906 retval = pdo_stmt_verify_mode(stmt, mode, 0 TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1928 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "fetch mode doesn't allow any extra arguments" TSRM… in pdo_stmt_setup_fetch_mode()
1936 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "fetch mode requires the colno argument" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1938 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "colno must be an integer" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1940 stmt->fetch.column = Z_LVAL_PP(args[skip+1]); in pdo_stmt_setup_fetch_mode()
1949 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "fetch mode doesn't allow any extra arguments" TSRM… in pdo_stmt_setup_fetch_mode()
1951 stmt->fetch.cls.ce = NULL; in pdo_stmt_setup_fetch_mode()
1956 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "fetch mode requires the classname argument" TSRMLS… in pdo_stmt_setup_fetch_mode()
1958 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "too many arguments" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1960 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "classname must be a string" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1966 stmt->fetch.cls.ce = *cep; in pdo_stmt_setup_fetch_mode()
1972 stmt->fetch.cls.ctor_args = NULL; in pdo_stmt_setup_fetch_mode()
1974 if (stmt->dbh->is_persistent) { in pdo_stmt_setup_fetch_mode()
1980 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "ctor_args must be either NULL or an array" TSRMLS_… in pdo_stmt_setup_fetch_mode()
1983 ALLOC_ZVAL(stmt->fetch.cls.ctor_args); in pdo_stmt_setup_fetch_mode()
1984 *stmt->fetch.cls.ctor_args = **args[skip+2]; in pdo_stmt_setup_fetch_mode()
1985 zval_copy_ctor(stmt->fetch.cls.ctor_args); in pdo_stmt_setup_fetch_mode()
1990 do_fetch_class_prepare(stmt TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
1998 …pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "fetch mode requires the object parameter" TSRMLS_C… in pdo_stmt_setup_fetch_mode()
2000 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "object must be an object" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
2007 if (stmt->dbh->is_persistent) { in pdo_stmt_setup_fetch_mode()
2011 MAKE_STD_ZVAL(stmt->fetch.into); in pdo_stmt_setup_fetch_mode()
2013 Z_TYPE_P(stmt->fetch.into) = IS_OBJECT; in pdo_stmt_setup_fetch_mode()
2014 Z_OBJ_HANDLE_P(stmt->fetch.into) = Z_OBJ_HANDLE_PP(args[skip+1]); in pdo_stmt_setup_fetch_mode()
2015 Z_OBJ_HT_P(stmt->fetch.into) = Z_OBJ_HT_PP(args[skip+1]); in pdo_stmt_setup_fetch_mode()
2016 zend_objects_store_add_ref(stmt->fetch.into TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
2022 pdo_raise_impl_error(stmt->dbh, stmt, "22003", "Invalid fetch mode specified" TSRMLS_CC); in pdo_stmt_setup_fetch_mode()
2026 stmt->default_fetch_type = mode; in pdo_stmt_setup_fetch_mode()
2049 stmt, 0) == SUCCESS ? 1 : 0 in PHP_METHOD()
2057 static int pdo_stmt_do_next_rowset(pdo_stmt_t *stmt TSRMLS_DC) in pdo_stmt_do_next_rowset()
2060 if (stmt->columns) { in pdo_stmt_do_next_rowset()
2062 struct pdo_column_data *cols = stmt->columns; in pdo_stmt_do_next_rowset()
2064 for (i = 0; i < stmt->column_count; i++) { in pdo_stmt_do_next_rowset()
2067 efree(stmt->columns); in pdo_stmt_do_next_rowset()
2068 stmt->columns = NULL; in pdo_stmt_do_next_rowset()
2069 stmt->column_count = 0; in pdo_stmt_do_next_rowset()
2072 if (!stmt->methods->next_rowset(stmt TSRMLS_CC)) { in pdo_stmt_do_next_rowset()
2074 stmt->executed = 0; in pdo_stmt_do_next_rowset()
2078 pdo_stmt_describe_columns(stmt TSRMLS_CC); in pdo_stmt_do_next_rowset()
2087 if (!stmt->methods->next_rowset) { in PHP_METHOD()
2088 …pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "driver does not support multiple rowsets" TSRMLS_C… in PHP_METHOD()
2094 if (!pdo_stmt_do_next_rowset(stmt TSRMLS_CC)) { in PHP_METHOD()
2109 if (!stmt->methods->cursor_closer) { in PHP_METHOD()
2112 while (stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0 TSRMLS_CC)) in PHP_METHOD()
2114 if (!stmt->methods->next_rowset) { in PHP_METHOD()
2118 if (!pdo_stmt_do_next_rowset(stmt TSRMLS_CC)) { in PHP_METHOD()
2123 stmt->executed = 0; in PHP_METHOD()
2129 if (!stmt->methods->cursor_closer(stmt TSRMLS_CC)) { in PHP_METHOD()
2133 stmt->executed = 0; in PHP_METHOD()
2152 stmt->query_stringlen, in PHP_METHOD()
2153 stmt->query_stringlen, stmt->query_string); in PHP_METHOD()
2156 stmt->bound_params ? zend_hash_num_elements(stmt->bound_params) : 0); in PHP_METHOD()
2158 if (stmt->bound_params) { in PHP_METHOD()
2159 zend_hash_internal_pointer_reset_ex(stmt->bound_params, &pos); in PHP_METHOD()
2160 while (SUCCESS == zend_hash_get_current_data_ex(stmt->bound_params, in PHP_METHOD()
2167 res = zend_hash_get_current_key_ex(stmt->bound_params, &str, &len, &num, 0, &pos); in PHP_METHOD()
2179 zend_hash_move_forward_ex(stmt->bound_params, &pos); in PHP_METHOD()
2231 pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); in dbstmt_prop_write() local
2236 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "property queryString is read only" TSRMLS_CC); in dbstmt_prop_write()
2244 pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); in dbstmt_prop_delete() local
2249 pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "property queryString is read only" TSRMLS_CC); in dbstmt_prop_delete()
2274 pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(object TSRMLS_CC); in dbstmt_method_get() local
2276 if (!stmt->dbh) { in dbstmt_method_get()
2281 if (!stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT]) { in dbstmt_method_get()
2282 if (!pdo_hash_methods(stmt->dbh, in dbstmt_method_get()
2284 || !stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT]) { in dbstmt_method_get()
2289 if (zend_hash_find(stmt->dbh->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_STMT], in dbstmt_method_get()
2310 pdo_stmt_t *stmt; in dbstmt_clone_obj() local
2314 stmt = ecalloc(1, sizeof(*stmt)); in dbstmt_clone_obj()
2315 zend_object_std_init(&stmt->std, Z_OBJCE_P(zobject) TSRMLS_CC); in dbstmt_clone_obj()
2316 object_properties_init(&stmt->std, Z_OBJCE_P(zobject)); in dbstmt_clone_obj()
2317 stmt->refcount = 1; in dbstmt_clone_obj()
2321 …retval.handle = zend_objects_store_put(stmt, (zend_objects_store_dtor_t)zend_objects_destroy_objec… in dbstmt_clone_obj()
2324 zend_objects_clone_members((zend_object *)stmt, retval, (zend_object *)old_stmt, handle TSRMLS_CC); in dbstmt_clone_obj()
2327 stmt->database_object_handle = old_stmt->database_object_handle; in dbstmt_clone_obj()
2360 static void free_statement(pdo_stmt_t *stmt TSRMLS_DC) in free_statement()
2362 if (stmt->bound_params) { in free_statement()
2363 zend_hash_destroy(stmt->bound_params); in free_statement()
2364 FREE_HASHTABLE(stmt->bound_params); in free_statement()
2365 stmt->bound_params = NULL; in free_statement()
2367 if (stmt->bound_param_map) { in free_statement()
2368 zend_hash_destroy(stmt->bound_param_map); in free_statement()
2369 FREE_HASHTABLE(stmt->bound_param_map); in free_statement()
2370 stmt->bound_param_map = NULL; in free_statement()
2372 if (stmt->bound_columns) { in free_statement()
2373 zend_hash_destroy(stmt->bound_columns); in free_statement()
2374 FREE_HASHTABLE(stmt->bound_columns); in free_statement()
2375 stmt->bound_columns = NULL; in free_statement()
2378 if (stmt->methods && stmt->methods->dtor) { in free_statement()
2379 stmt->methods->dtor(stmt TSRMLS_CC); in free_statement()
2381 if (stmt->query_string) { in free_statement()
2382 efree(stmt->query_string); in free_statement()
2385 if (stmt->columns) { in free_statement()
2387 struct pdo_column_data *cols = stmt->columns; in free_statement()
2389 for (i = 0; i < stmt->column_count; i++) { in free_statement()
2395 efree(stmt->columns); in free_statement()
2396 stmt->columns = NULL; in free_statement()
2399 if (stmt->fetch.into && stmt->default_fetch_type == PDO_FETCH_INTO) { in free_statement()
2400 FREE_ZVAL(stmt->fetch.into); in free_statement()
2401 stmt->fetch.into = NULL; in free_statement()
2404 do_fetch_opt_finish(stmt, 1 TSRMLS_CC); in free_statement()
2406 zend_objects_store_del_ref(&stmt->database_object_handle TSRMLS_CC); in free_statement()
2407 if (stmt->dbh) { in free_statement()
2408 php_pdo_dbh_delref(stmt->dbh TSRMLS_CC); in free_statement()
2410 zend_object_std_dtor(&stmt->std TSRMLS_CC); in free_statement()
2411 efree(stmt); in free_statement()
2414 PDO_API void php_pdo_stmt_addref(pdo_stmt_t *stmt TSRMLS_DC) in php_pdo_stmt_addref()
2416 stmt->refcount++; in php_pdo_stmt_addref()
2419 PDO_API void php_pdo_stmt_delref(pdo_stmt_t *stmt TSRMLS_DC) in php_pdo_stmt_delref()
2421 if (--stmt->refcount == 0) { in php_pdo_stmt_delref()
2422 free_statement(stmt TSRMLS_CC); in php_pdo_stmt_delref()
2426 void pdo_dbstmt_free_storage(pdo_stmt_t *stmt TSRMLS_DC) in pdo_dbstmt_free_storage()
2428 php_pdo_stmt_delref(stmt TSRMLS_CC); in pdo_dbstmt_free_storage()
2435 pdo_stmt_t *stmt; in pdo_dbstmt_new() local
2436 stmt = emalloc(sizeof(*stmt)); in pdo_dbstmt_new()
2437 memset(stmt, 0, sizeof(*stmt)); in pdo_dbstmt_new()
2438 zend_object_std_init(&stmt->std, ce TSRMLS_CC); in pdo_dbstmt_new()
2439 object_properties_init(&stmt->std, ce); in pdo_dbstmt_new()
2440 stmt->refcount = 1; in pdo_dbstmt_new()
2442 …retval.handle = zend_objects_store_put(stmt, (zend_objects_store_dtor_t)zend_objects_destroy_objec… in pdo_dbstmt_new()
2453 pdo_stmt_t *stmt; member
2462 if (--I->stmt->refcount == 0) { in pdo_stmt_iter_dtor()
2463 free_statement(I->stmt TSRMLS_CC); in pdo_stmt_iter_dtor()
2515 if (!do_fetch(I->stmt, TRUE, I->fetch_ahead, PDO_FETCH_USE_DEFAULT, in pdo_stmt_iter_move_forwards()
2517 pdo_stmt_t *stmt = I->stmt; /* for PDO_HANDLE_STMT_ERR() */ in pdo_stmt_iter_move_forwards() local
2541 pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(object TSRMLS_CC); in pdo_stmt_iter_get() local
2551 I->stmt = stmt; in pdo_stmt_iter_get()
2552 stmt->refcount++; in pdo_stmt_iter_get()
2555 if (!do_fetch(I->stmt, TRUE, I->fetch_ahead, PDO_FETCH_USE_DEFAULT, in pdo_stmt_iter_get()
2577 pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); in row_prop_read() local
2583 if (stmt) { in row_prop_read()
2585 if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) { in row_prop_read()
2586 fetch_value(stmt, return_value, Z_LVAL_P(member), NULL TSRMLS_CC); in row_prop_read()
2592 for (colno = 0; colno < stmt->column_count; colno++) { in row_prop_read()
2593 if (strcmp(stmt->columns[colno].name, Z_STRVAL_P(member)) == 0) { in row_prop_read()
2594 fetch_value(stmt, return_value, colno, NULL TSRMLS_CC); in row_prop_read()
2630 pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); in row_prop_exists() local
2633 if (stmt) { in row_prop_exists()
2635 return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count; in row_prop_exists()
2641 for (colno = 0; colno < stmt->column_count; colno++) { in row_prop_exists()
2642 if (strcmp(stmt->columns[colno].name, Z_STRVAL_P(member)) == 0) { in row_prop_exists()
2669 pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); in row_get_properties() local
2672 if (stmt == NULL) { in row_get_properties()
2676 if (!stmt->std.properties) { in row_get_properties()
2677 rebuild_object_properties(&stmt->std); in row_get_properties()
2679 for (i = 0; i < stmt->column_count; i++) { in row_get_properties()
2682 fetch_value(stmt, val, i, NULL TSRMLS_CC); in row_get_properties()
2684 …zend_hash_update(stmt->std.properties, stmt->columns[i].name, stmt->columns[i].namelen + 1, (void … in row_get_properties()
2687 return stmt->std.properties; in row_get_properties()
2778 void pdo_row_free_storage(pdo_stmt_t *stmt TSRMLS_DC) in pdo_row_free_storage()
2780 if (stmt) { in pdo_row_free_storage()
2781 ZVAL_NULL(&stmt->lazy_object_ref); in pdo_row_free_storage()
2783 if (--stmt->refcount == 0) { in pdo_row_free_storage()
2784 free_statement(stmt TSRMLS_CC); in pdo_row_free_storage()