Lines Matching refs:stmt

184 int mysqli_stmt_bind_param_do_bind(MY_STMT *stmt, unsigned int argc, unsigned int num_vars,  in mysqli_stmt_bind_param_do_bind()  argument
192 if (stmt->param.var_cnt) { in mysqli_stmt_bind_param_do_bind()
193 php_free_stmt_bind_buffer(stmt->param, FETCH_SIMPLE); in mysqli_stmt_bind_param_do_bind()
196 stmt->param.is_null = ecalloc(num_vars, sizeof(char)); in mysqli_stmt_bind_param_do_bind()
212 bind[ofs].is_null = &stmt->param.is_null[ofs]; in mysqli_stmt_bind_param_do_bind()
222 bind[ofs].is_null = &stmt->param.is_null[ofs]; in mysqli_stmt_bind_param_do_bind()
233 bind[ofs].is_null = &stmt->param.is_null[ofs]; in mysqli_stmt_bind_param_do_bind()
243 rc = mysql_stmt_bind_param(stmt->stmt, bind); in mysqli_stmt_bind_param_do_bind()
247 efree(stmt->param.is_null); in mysqli_stmt_bind_param_do_bind()
249 stmt->param.var_cnt = num_vars; in mysqli_stmt_bind_param_do_bind()
250 stmt->param.vars = safe_emalloc(num_vars, sizeof(zval), 0); in mysqli_stmt_bind_param_do_bind()
253 ZVAL_COPY(&stmt->param.vars[i], &args[i+start]); in mysqli_stmt_bind_param_do_bind()
255 ZVAL_UNDEF(&stmt->param.vars[i]); in mysqli_stmt_bind_param_do_bind()
265 int mysqli_stmt_bind_param_do_bind(MY_STMT *stmt, unsigned int argc, unsigned int num_vars, in mysqli_stmt_bind_param_do_bind() argument
276 params = mysqlnd_stmt_alloc_param_bind(stmt->stmt); in mysqli_stmt_bind_param_do_bind()
303 mysqlnd_stmt_free_param_bind(stmt->stmt, params); in mysqli_stmt_bind_param_do_bind()
309 ret = mysqlnd_stmt_bind_param(stmt->stmt, params); in mysqli_stmt_bind_param_do_bind()
325 MY_STMT *stmt; in PHP_FUNCTION() local
342 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID); in PHP_FUNCTION()
362 if (types_len != mysql_stmt_param_count(stmt->stmt)) { in PHP_FUNCTION()
373 rc = mysqli_stmt_bind_param_do_bind(stmt, argc, num_vars, args, start, types); in PHP_FUNCTION()
374 MYSQLI_REPORT_STMT_ERROR(stmt->stmt); in PHP_FUNCTION()
389 mysqli_stmt_bind_result_do_bind(MY_STMT *stmt, zval *args, unsigned int argc) in mysqli_stmt_bind_result_do_bind() argument
398 if (stmt->result.var_cnt) { in mysqli_stmt_bind_result_do_bind()
399 php_free_stmt_bind_buffer(stmt->result, FETCH_RESULT); in mysqli_stmt_bind_result_do_bind()
406 stmt->result.buf = (VAR_BUFFER *) p; in mysqli_stmt_bind_result_do_bind()
407 stmt->result.is_null = p + var_cnt * sizeof(VAR_BUFFER); in mysqli_stmt_bind_result_do_bind()
413 col_type = (stmt->stmt->fields) ? stmt->stmt->fields[ofs].type : MYSQL_TYPE_STRING; in mysqli_stmt_bind_result_do_bind()
417 stmt->result.buf[ofs].type = IS_DOUBLE; in mysqli_stmt_bind_result_do_bind()
418 stmt->result.buf[ofs].buflen = sizeof(float); in mysqli_stmt_bind_result_do_bind()
420 stmt->result.buf[ofs].val = (char *)emalloc(sizeof(float)); in mysqli_stmt_bind_result_do_bind()
422 bind[ofs].buffer = stmt->result.buf[ofs].val; in mysqli_stmt_bind_result_do_bind()
423 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
427 stmt->result.buf[ofs].type = IS_DOUBLE; in mysqli_stmt_bind_result_do_bind()
428 stmt->result.buf[ofs].buflen = sizeof(double); in mysqli_stmt_bind_result_do_bind()
431 stmt->result.buf[ofs].val = (char *)emalloc(sizeof(double)); in mysqli_stmt_bind_result_do_bind()
433 bind[ofs].buffer = stmt->result.buf[ofs].val; in mysqli_stmt_bind_result_do_bind()
434 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
438 stmt->result.buf[ofs].type = IS_NULL; in mysqli_stmt_bind_result_do_bind()
447 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
455 stmt->result.buf[ofs].type = IS_LONG; in mysqli_stmt_bind_result_do_bind()
457 stmt->result.buf[ofs].val = (char *)emalloc(sizeof(int)); in mysqli_stmt_bind_result_do_bind()
459 bind[ofs].buffer = stmt->result.buf[ofs].val; in mysqli_stmt_bind_result_do_bind()
460 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
461 bind[ofs].is_unsigned = (stmt->stmt->fields[ofs].flags & UNSIGNED_FLAG) ? 1 : 0; in mysqli_stmt_bind_result_do_bind()
468 stmt->result.buf[ofs].type = IS_STRING; in mysqli_stmt_bind_result_do_bind()
469 stmt->result.buf[ofs].buflen = sizeof(my_ulonglong); in mysqli_stmt_bind_result_do_bind()
470 stmt->result.buf[ofs].val = (char *)emalloc(stmt->result.buf[ofs].buflen); in mysqli_stmt_bind_result_do_bind()
472 bind[ofs].buffer = stmt->result.buf[ofs].val; in mysqli_stmt_bind_result_do_bind()
473 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
474 bind[ofs].buffer_length = stmt->result.buf[ofs].buflen; in mysqli_stmt_bind_result_do_bind()
475 bind[ofs].is_unsigned = (stmt->stmt->fields[ofs].flags & UNSIGNED_FLAG) ? 1 : 0; in mysqli_stmt_bind_result_do_bind()
476 bind[ofs].length = &stmt->result.buf[ofs].output_len; in mysqli_stmt_bind_result_do_bind()
502 stmt->result.buf[ofs].type = IS_STRING; in mysqli_stmt_bind_result_do_bind()
508 if (stmt->stmt->fields[ofs].max_length == 0 && in mysqli_stmt_bind_result_do_bind()
509 !mysql_stmt_attr_get(stmt->stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &tmp) && !tmp) in mysqli_stmt_bind_result_do_bind()
517 stmt->result.buf[ofs].buflen = in mysqli_stmt_bind_result_do_bind()
518 …(stmt->stmt->fields) ? (stmt->stmt->fields[ofs].length) ? stmt->stmt->fields[ofs].length + 1: 256:… in mysqli_stmt_bind_result_do_bind()
525 if (!(stmt->result.buf[ofs].buflen = stmt->stmt->fields[ofs].max_length)) in mysqli_stmt_bind_result_do_bind()
526 ++stmt->result.buf[ofs].buflen; in mysqli_stmt_bind_result_do_bind()
528 stmt->result.buf[ofs].val = (char *)emalloc(stmt->result.buf[ofs].buflen); in mysqli_stmt_bind_result_do_bind()
530 bind[ofs].buffer = stmt->result.buf[ofs].val; in mysqli_stmt_bind_result_do_bind()
531 bind[ofs].is_null = &stmt->result.is_null[ofs]; in mysqli_stmt_bind_result_do_bind()
532 bind[ofs].buffer_length = stmt->result.buf[ofs].buflen; in mysqli_stmt_bind_result_do_bind()
533 bind[ofs].length = &stmt->result.buf[ofs].output_len; in mysqli_stmt_bind_result_do_bind()
542 rc = mysql_stmt_bind_result(stmt->stmt, bind); in mysqli_stmt_bind_result_do_bind()
543 MYSQLI_REPORT_STMT_ERROR(stmt->stmt); in mysqli_stmt_bind_result_do_bind()
548 if (stmt->result.buf[i].val) { in mysqli_stmt_bind_result_do_bind()
549 efree(stmt->result.buf[i].val); in mysqli_stmt_bind_result_do_bind()
553 efree(stmt->result.buf); in mysqli_stmt_bind_result_do_bind()
555 stmt->result.var_cnt = var_cnt; in mysqli_stmt_bind_result_do_bind()
556 stmt->result.vars = safe_emalloc((var_cnt), sizeof(zval), 0); in mysqli_stmt_bind_result_do_bind()
558 ZVAL_COPY(&stmt->result.vars[i], &args[i]); in mysqli_stmt_bind_result_do_bind()
567 mysqli_stmt_bind_result_do_bind(MY_STMT *stmt, zval *args, unsigned int argc) in mysqli_stmt_bind_result_do_bind() argument
570 MYSQLND_RESULT_BIND *params = mysqlnd_stmt_alloc_result_bind(stmt->stmt); in mysqli_stmt_bind_result_do_bind()
575 return mysqlnd_stmt_bind_result(stmt->stmt, params); in mysqli_stmt_bind_result_do_bind()
589 MY_STMT *stmt; in PHP_FUNCTION() local
596 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID); in PHP_FUNCTION()
598 if ((uint32_t)argc != mysql_stmt_field_count(stmt->stmt)) { in PHP_FUNCTION()
603 rc = mysqli_stmt_bind_result_do_bind(stmt, args, argc); in PHP_FUNCTION()
863 MY_STMT *stmt; local
872 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
875 if (stmt->param.var_cnt) {
877 for (i = 0; i < stmt->param.var_cnt; i++) {
878 if (!Z_ISREF(stmt->param.vars[i])) {
881 for (j = i + 1; j < stmt->param.var_cnt; j++) {
883 if (Z_ISREF(stmt->param.vars[j]) &&
884 Z_REFVAL(stmt->param.vars[j]) == Z_REFVAL(stmt->param.vars[i])) {
886 Z_DELREF_P(&stmt->param.vars[j]);
887 ZVAL_COPY(&stmt->param.vars[j], Z_REFVAL(stmt->param.vars[j]));
893 for (i = 0; i < stmt->param.var_cnt; i++) {
894 if (!Z_ISUNDEF(stmt->param.vars[i])) {
896 if (Z_ISREF(stmt->param.vars[i])) {
897 param = Z_REFVAL(stmt->param.vars[i]);
899 param = &stmt->param.vars[i];
901 if (!(stmt->param.is_null[i] = (Z_ISNULL_P(param)))) {
902 switch (stmt->stmt->params[i].buffer_type) {
908 stmt->stmt->params[i].buffer = Z_STRVAL_P(param);
909 stmt->stmt->params[i].buffer_length = Z_STRLEN_P(param);
913 stmt->stmt->params[i].buffer = &Z_DVAL_P(param);
918 stmt->stmt->params[i].buffer = &Z_LVAL_P(param);
928 if (mysql_stmt_execute(stmt->stmt)) {
929 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
936 php_mysqli_report_index(stmt->query, mysqli_stmt_server_status(stmt->stmt));
946 MY_STMT *stmt; local
957 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
960 for (i = 0; i < stmt->result.var_cnt; i++) {
961 if (stmt->result.buf[i].type == IS_STRING) {
962 memset(stmt->result.buf[i].val, 0, stmt->result.buf[i].buflen);
965 ret = mysql_stmt_fetch(stmt->stmt);
971 for (i = 0; i < stmt->result.var_cnt; i++) {
974 if (Z_ISREF(stmt->result.vars[i])) {
975 result = &stmt->result.vars[i];
980 if (!stmt->result.is_null[i]) {
981 switch (stmt->result.buf[i].type) {
983 if ((stmt->stmt->fields[i].type == MYSQL_TYPE_LONG)
984 && (stmt->stmt->fields[i].flags & UNSIGNED_FLAG))
987 uval= *(unsigned int *) stmt->result.buf[i].val;
1006 if (stmt->stmt->fields[i].flags & UNSIGNED_FLAG) {
1007 ZEND_TRY_ASSIGN_REF_LONG(result, *(unsigned int *)stmt->result.buf[i].val);
1009 ZEND_TRY_ASSIGN_REF_LONG(result, *(int *)stmt->result.buf[i].val);
1015 if (stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_FLOAT) {
1019 dval = mysql_float_to_double(*(float *)stmt->result.buf[i].val,
1020 (stmt->stmt->fields[i].decimals >= NOT_FIXED_DEC) ? -1 :
1021 stmt->stmt->fields[i].decimals);
1023 dval = *((double *)stmt->result.buf[i].val);
1030 if (stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_LONGLONG
1032 || stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_BIT
1035 my_bool uns = (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? 1:0;
1037 if (stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_BIT) {
1038 switch (stmt->result.buf[i].output_len) {
1039 case 8:llval = (my_ulonglong) bit_uint8korr(stmt->result.buf[i].val);break;
1040 case 7:llval = (my_ulonglong) bit_uint7korr(stmt->result.buf[i].val);break;
1041 case 6:llval = (my_ulonglong) bit_uint6korr(stmt->result.buf[i].val);break;
1042 case 5:llval = (my_ulonglong) bit_uint5korr(stmt->result.buf[i].val);break;
1043 case 4:llval = (my_ulonglong) bit_uint4korr(stmt->result.buf[i].val);break;
1044 case 3:llval = (my_ulonglong) bit_uint3korr(stmt->result.buf[i].val);break;
1045 case 2:llval = (my_ulonglong) bit_uint2korr(stmt->result.buf[i].val);break;
1046 case 1:llval = (my_ulonglong) uint1korr(stmt->result.buf[i].val);break;
1051 llval= *(my_ulonglong *) stmt->result.buf[i].val;
1066 …snprintf(tmp, sizeof(tmp), (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? MYSQLI_LLU_SPEC : MYSQLI…
1073 if (ret == MYSQL_DATA_TRUNCATED && *(stmt->stmt->bind[i].error) != 0) {
1075 … ZEND_TRY_ASSIGN_REF_STRINGL(result, stmt->result.buf[i].val, stmt->stmt->bind[i].buffer_length);
1080 … ZEND_TRY_ASSIGN_REF_STRINGL(result, stmt->result.buf[i].val, stmt->result.buf[i].output_len);
1092 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
1119 MY_STMT *stmt; local
1126 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
1128 if (FAIL == mysqlnd_stmt_fetch(stmt->stmt, &fetched_anything)) {
1129 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
1624 MY_STMT *stmt; local
1630 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
1632 RETURN_BOOL(mysqlnd_stmt_more_results(stmt->stmt));
1639 MY_STMT *stmt; local
1645 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
1647 if (mysql_stmt_next_result(stmt->stmt)) {
1648 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
1837 MY_STMT *stmt; local
1855 stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));
1857 if ((stmt->stmt = mysql_stmt_init(mysql->mysql))) {
1858 if (mysql_stmt_prepare(stmt->stmt, query, query_len)) {
1865 last_errno = stmt->stmt->last_errno;
1866 memcpy(last_error, stmt->stmt->last_error, MYSQL_ERRMSG_SIZE);
1874 mysqli_stmt_close(stmt->stmt, FALSE);
1875 stmt->stmt = NULL;
1891 if (stmt->stmt && query_len && (MyG(report_mode) & MYSQLI_REPORT_INDEX)) {
1892 stmt->query = (char *)emalloc(query_len + 1);
1893 memcpy(stmt->query, query, query_len);
1894 stmt->query[query_len] = '\0';
1898 if (!stmt->stmt) {
1900 efree(stmt);
1904 ZVAL_COPY(&stmt->link_handle, mysql_link);
1908 mysqli_resource->ptr = (void *)stmt;
2013 MY_STMT *stmt; local
2022 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2028 if (mysql_stmt_send_long_data(stmt->stmt, param_nr, data, data_len)) {
2039 MY_STMT *stmt; local
2046 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2048 rc = mysql_stmt_affected_rows(stmt->stmt);
2060 MY_STMT *stmt; local
2066 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2068 mysqli_stmt_close(stmt->stmt, FALSE);
2069 stmt->stmt = NULL;
2070 php_clear_stmt_bind(stmt);
2080 MY_STMT *stmt; local
2092 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2094 mysql_stmt_data_seek(stmt->stmt, offset);
2102 MY_STMT *stmt; local
2108 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2110 RETURN_LONG(mysql_stmt_field_count(stmt->stmt));
2118 MY_STMT *stmt; local
2125 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2127 mysql_stmt_free_result(stmt->stmt);
2135 MY_STMT *stmt; local
2142 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2143 rc = mysql_stmt_insert_id(stmt->stmt);
2152 MY_STMT *stmt; local
2158 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2160 RETURN_LONG(mysql_stmt_param_count(stmt->stmt));
2168 MY_STMT *stmt; local
2175 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2177 if (mysql_stmt_reset(stmt->stmt)) {
2188 MY_STMT *stmt; local
2196 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2198 rc = mysql_stmt_num_rows(stmt->stmt);
2327 MY_STMT *stmt; local
2340 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2360 if (mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
2362 if (FAIL == mysql_stmt_attr_set(stmt->stmt, attr, mode_p)) {
2364 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
2375 MY_STMT *stmt; local
2384 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2386 if ((rc = mysql_stmt_attr_get(stmt->stmt, attr, &value))) {
2402 MY_STMT *stmt; local
2408 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_INITIALIZED);
2410 RETURN_LONG(mysql_stmt_errno(stmt->stmt));
2418 MY_STMT *stmt; local
2425 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_INITIALIZED);
2427 err = mysql_stmt_error(stmt->stmt);
2440 MY_STMT *stmt; local
2449 stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));
2451 if (!(stmt->stmt = mysql_stmt_init(mysql->mysql))) {
2452 efree(stmt);
2456 ZVAL_COPY(&stmt->link_handle, mysql_link);
2461 mysqli_resource->ptr = (void *)stmt;
2471 MY_STMT *stmt; local
2479 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_INITIALIZED);
2481 if (mysql_stmt_prepare(stmt->stmt, query, query_len)) {
2482 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
2495 MY_STMT *stmt; local
2503 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2505 if (!(result = mysql_stmt_result_metadata(stmt->stmt))){
2506 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
2521 MY_STMT *stmt; local
2527 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2540 for (i = mysql_stmt_field_count(stmt->stmt) - 1; i >=0; --i) {
2541 if (stmt->stmt->fields && (stmt->stmt->fields[i].type == MYSQL_TYPE_BLOB ||
2542 stmt->stmt->fields[i].type == MYSQL_TYPE_MEDIUM_BLOB ||
2543 stmt->stmt->fields[i].type == MYSQL_TYPE_LONG_BLOB ||
2544 stmt->stmt->fields[i].type == MYSQL_TYPE_GEOMETRY))
2551 mysql_stmt_attr_set(stmt->stmt, STMT_ATTR_UPDATE_MAX_LENGTH, &tmp);
2558 if (mysql_stmt_store_result(stmt->stmt)){
2559 MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
2570 MY_STMT *stmt; local
2577 MYSQLI_FETCH_RESOURCE_STMT(stmt, mysql_stmt, MYSQLI_STATUS_VALID);
2579 state = mysql_stmt_sqlstate(stmt->stmt);