php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
mysqlnd_structs.h
Go to the documentation of this file.
1/*
2 +----------------------------------------------------------------------+
3 | Copyright (c) The PHP Group |
4 +----------------------------------------------------------------------+
5 | This source file is subject to version 3.01 of the PHP license, |
6 | that is bundled with this package in the file LICENSE, and is |
7 | available through the world-wide-web at the following url: |
8 | https://www.php.net/license/3_01.txt |
9 | If you did not receive a copy of the PHP license and are unable to |
10 | obtain it through the world-wide-web, please send a note to |
11 | license@php.net so we can mail you a copy immediately. |
12 +----------------------------------------------------------------------+
13 | Authors: Andrey Hristov <andrey@php.net> |
14 | Ulf Wendel <uw@php.net> |
15 +----------------------------------------------------------------------+
16*/
17
18#ifndef MYSQLND_STRUCTS_H
19#define MYSQLND_STRUCTS_H
20
22
23#define MYSQLND_TYPEDEFED_METHODS
24
25#define MYSQLND_CLASS_METHOD_TABLE_NAME(class) mysqlnd_##class##_methods
26#define MYSQLND_CLASS_METHODS_TYPE(class) struct st_##class##_methods
27#define MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(class) MYSQLND_CLASS_METHODS_TYPE(class) MYSQLND_CLASS_METHOD_TABLE_NAME(class)
28
29#define MYSQLND_CLASS_METHODS_START(class) MYSQLND_CLASS_METHOD_TABLE_NAME_FORWARD(class) = {
30#define MYSQLND_CLASS_METHODS_END }
31
32#define MYSQLND_CLASS_METHODS_INSTANCE_NAME(class) mysqlnd_##class##_methods_ptr
33#define MYSQLND_CLASS_METHODS_INSTANCE_DECLARE(class) extern const MYSQLND_CLASS_METHODS_TYPE(class) * MYSQLND_CLASS_METHODS_INSTANCE_NAME(class)
34#define MYSQLND_CLASS_METHODS_INSTANCE_DEFINE(class) const MYSQLND_CLASS_METHODS_TYPE(class) * MYSQLND_CLASS_METHODS_INSTANCE_NAME(class) = & MYSQLND_CLASS_METHOD_TABLE_NAME(class)
35
36typedef struct st_mysqlnd_string
37{
38 char *s;
39 size_t l;
41
43{
44 const char *s;
45 size_t l;
47
48
50
52{
55
56 void* (*get_chunk)(MYSQLND_MEMORY_POOL * pool, size_t size);
57};
58
59
61
63{
64 void *ptr;
65 size_t size;
66};
67
68
74
75
76typedef struct st_mysqlnd_field
77{
78 zend_string *sname; /* Name of column */
81 const char *name; /* Name of column in C string */
82 const char *org_name; /* Original column name, if an alias */
83 const char *table; /* Table of column if column was a field */
84 const char *org_table; /* Org table name, if table was an alias */
85 const char *db; /* Database for table */
86 const char *catalog; /* Catalog for table */
87 char *def; /* Default value */
88 zend_ulong length; /* Width of column (create length) */
89 unsigned int name_length;
90 unsigned int org_name_length;
91 unsigned int table_length;
92 unsigned int org_table_length;
93 unsigned int db_length;
94 unsigned int catalog_length;
95 unsigned int def_length;
96 unsigned int flags; /* Diverse flags */
97 unsigned int decimals; /* Number of decimals in field */
98 unsigned int charsetnr; /* Character set */
99 enum mysqlnd_field_types type; /* Type of field. See mysql_com.h for types */
100 char *root;
101 size_t root_len;
103
104
108
114
116{
117 unsigned int warning_count;
118 unsigned int server_status;
121
122 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_upsert_status) *m;
123};
124
125#define SET_EMPTY_ERROR(info) (info)->m->reset((info))
126#define SET_CLIENT_ERROR(info, err_no, sqlstate, error) (err_no)? (info)->m->set_client_error((info), (err_no), (sqlstate), (error)) : (info)->m->reset((info))
127#define SET_OOM_ERROR(info) SET_CLIENT_ERROR((info), CR_OUT_OF_MEMORY, UNKNOWN_SQLSTATE, mysqlnd_out_of_memory)
128#define COPY_CLIENT_ERROR(dest, source) SET_CLIENT_ERROR((dest), (source).error_no, (source).sqlstate, (source).error)
129
130
133typedef void (*func_mysqlnd_error_info__set_client_error)(MYSQLND_ERROR_INFO * const info, const unsigned int err_no, const char * const sqlstate, const char * const error);
134
135
141
152
153
160
161
169
170
171typedef int (*func_mysqlnd_local_infile__init)(void ** ptr, const char * const filename);
172typedef int (*func_mysqlnd_local_infile__read)(void * ptr, zend_uchar * buf, unsigned int buf_len);
173typedef int (*func_mysqlnd_local_infile__error)(void * ptr, char * error_msg, unsigned int error_msg_len);
175
176
177/* character set information */
178typedef struct st_mysqlnd_charset
179{
180 unsigned int nr;
181 const char *name;
182 const char *collation;
183 unsigned int char_minlen;
184 unsigned int char_maxlen;
185 const char *comment;
187 short mb_valid;
188 unsigned int lowest_mb_byte;
190
191
192/* local infile handler */
200
201
203{
204 unsigned int flags;
205
206 /* init commands - we need to send them to server directly after connect */
207 unsigned int num_commands;
209
210 /* configuration file information */
211 char *cfg_file;
213
215 /*
216 We need to keep these because otherwise st_mysqlnd_conn will be changed.
217 The ABI will be broken and the methods structure will be somewhere else
218 in the memory which can crash external code. Feel free to reuse these.
219 */
221 char * unused1;
222 char * unused2;
223 char * unused3;
224
226
228 /* maximum allowed packet size for communication */
229 unsigned int max_allowed_packet;
230
232
235
236
238{
239 /* timeouts */
240 unsigned int timeout_connect;
241 unsigned int timeout_read;
242 unsigned int timeout_write;
243
245
246 /* SSL information */
247 char *ssl_key;
248 char *ssl_cert;
249 char *ssl_ca;
257
258#define MYSQLND_SSL_PEER_DEFAULT_ACTION MYSQLND_SSL_PEER_VERIFY
261
262
263
272typedef char** MYSQLND_ROW_C; /* return data as array of strings */
275typedef unsigned int MYSQLND_FIELD_OFFSET;
276
278
280
284
286
287
288typedef MYSQLND_RES* (*mysqlnd_stmt_use_or_store_func)(MYSQLND_STMT * const);
290 zval **row,
291 const unsigned int flags,
292 bool * fetched_anything
293 );
294
295
297
299{
300 uint64_t *values;
301 size_t count;
302#ifdef ZTS
303 MUTEX_T LOCK_access;
304#endif
305};
306
307
313typedef enum_func_status (*func_mysqlnd_execute_com_process_kill)(MYSQLND_CONN_DATA * const conn, const unsigned int process_id, const bool read_response);
317typedef enum_func_status (*func_mysqlnd_execute_com_change_user)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING payload, const bool silent);
325typedef enum_func_status (*func_mysqlnd_execute_com_enable_ssl)(MYSQLND_CONN_DATA * const conn, const size_t client_capabilities, const size_t server_capabilities, const unsigned int charset_no);
326typedef enum_func_status (*func_mysqlnd_execute_com_handshake)(MYSQLND_CONN_DATA * const conn, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, const size_t client_flags);
327
328
351
352
353
354typedef void (*func_mysqlnd_vio__init)(MYSQLND_VIO * const vio, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info);
355typedef void (*func_mysqlnd_vio__dtor)(MYSQLND_VIO * const vio, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
356
357typedef enum_func_status (*func_mysqlnd_vio__connect)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, const bool persistent, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
358
359typedef void (*func_mysqlnd_vio__close_stream)(MYSQLND_VIO * const vio, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
360typedef php_stream * (*func_mysqlnd_vio__open_stream)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, const bool persistent, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
361typedef php_stream * (*func_mysqlnd_vio__get_stream)(const MYSQLND_VIO * const vio);
363typedef bool (*func_mysqlnd_vio__has_valid_stream)(const MYSQLND_VIO * const vio);
365
367typedef void (*func_mysqlnd_vio__post_connect_set_opt)(MYSQLND_VIO * const vio, const MYSQLND_CSTRING scheme, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
368
371typedef enum_func_status (*func_mysqlnd_vio__network_read)(MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info);
372typedef ssize_t (*func_mysqlnd_vio__network_write)(MYSQLND_VIO * const vio, const zend_uchar * const buf, const size_t count, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info);
373
375
377
378
380{
384
387 func_mysqlnd_vio__open_stream open_tcp_or_unix;
388
391 func_mysqlnd_vio__has_valid_stream has_valid_stream;
392 func_mysqlnd_vio__get_open_stream get_open_stream;
393
394 func_mysqlnd_vio__set_client_option set_client_option;
395 func_mysqlnd_vio__post_connect_set_opt post_connect_set_opt;
396
399
402
403 func_mysqlnd_vio__consume_uneaten_data consume_uneaten_data;
404
406};
407
408
409MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory);
410
411typedef MYSQLND * (*func_mysqlnd_object_factory__get_connection)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) * factory, const bool persistent);
412typedef MYSQLND * (*func_mysqlnd_object_factory__clone_connection_object)(MYSQLND * conn);
413typedef MYSQLND_STMT * (*func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA * conn);
414typedef MYSQLND_PFC * (*func_mysqlnd_object_factory__get_pfc)(const bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info);
415typedef MYSQLND_VIO * (*func_mysqlnd_object_factory__get_vio)(const bool persistent, MYSQLND_STATS * stats, MYSQLND_ERROR_INFO * error_info);
416typedef MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * (*func_mysqlnd_object_factory__get_protocol_payload_decoder_factory)(MYSQLND_CONN_DATA * conn, const bool persistent);
417
418
428
429
430typedef enum_func_status (*func_mysqlnd_conn_data__connect)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING username, MYSQLND_CSTRING password, MYSQLND_CSTRING database, unsigned int port, MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags);
431typedef zend_ulong (*func_mysqlnd_conn_data__escape_string)(MYSQLND_CONN_DATA * const conn, char *newstr, const char *escapestr, size_t escapestr_len);
433typedef enum_func_status (*func_mysqlnd_conn_data__query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len);
434typedef enum_func_status (*func_mysqlnd_conn_data__send_query)(MYSQLND_CONN_DATA * conn, const char * const query, const size_t query_len, zval *read_cb, zval *err_cb);
436typedef MYSQLND_RES * (*func_mysqlnd_conn_data__use_result)(MYSQLND_CONN_DATA * const conn);
437typedef MYSQLND_RES * (*func_mysqlnd_conn_data__store_result)(MYSQLND_CONN_DATA * const conn);
439typedef bool (*func_mysqlnd_conn_data__more_results)(const MYSQLND_CONN_DATA * const conn);
440
441typedef MYSQLND_STMT * (*func_mysqlnd_conn_data__stmt_init)(MYSQLND_CONN_DATA * const conn);
442
445
448typedef enum_func_status (*func_mysqlnd_conn_data__select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, const size_t db_len);
450typedef enum_func_status (*func_mysqlnd_conn_data__change_user)(MYSQLND_CONN_DATA * const conn, const char * user, const char * passwd, const char * db, bool silent, size_t passwd_len);
451
452typedef unsigned int (*func_mysqlnd_conn_data__get_error_no)(const MYSQLND_CONN_DATA * const conn);
453typedef const char * (*func_mysqlnd_conn_data__get_error_str)(const MYSQLND_CONN_DATA * const conn);
454typedef const char * (*func_mysqlnd_conn_data__get_sqlstate)(const MYSQLND_CONN_DATA * const conn);
455typedef uint64_t (*func_mysqlnd_conn_data__get_thread_id)(const MYSQLND_CONN_DATA * const conn);
457
459typedef const char * (*func_mysqlnd_conn_data__get_server_information)(const MYSQLND_CONN_DATA * const conn);
461typedef const char * (*func_mysqlnd_conn_data__get_host_information)(const MYSQLND_CONN_DATA * const conn);
462typedef unsigned int (*func_mysqlnd_conn_data__get_protocol_information)(const MYSQLND_CONN_DATA * const conn);
463typedef const char * (*func_mysqlnd_conn_data__get_last_message)(const MYSQLND_CONN_DATA * const conn);
464typedef const char * (*func_mysqlnd_conn_data__charset_name)(const MYSQLND_CONN_DATA * const conn);
465typedef MYSQLND_RES * (*func_mysqlnd_conn_data__list_method)(MYSQLND_CONN_DATA * conn, const char * const query, const char * const achtung_wild, const char * const par1);
466
467typedef uint64_t (*func_mysqlnd_conn_data__get_last_insert_id)(const MYSQLND_CONN_DATA * const conn);
468typedef uint64_t (*func_mysqlnd_conn_data__get_affected_rows)(const MYSQLND_CONN_DATA * const conn);
469typedef unsigned int (*func_mysqlnd_conn_data__get_warning_count)(const MYSQLND_CONN_DATA * const conn);
470
471typedef unsigned int (*func_mysqlnd_conn_data__get_field_count)(const MYSQLND_CONN_DATA * const conn);
472
473typedef unsigned int (*func_mysqlnd_conn_data__get_server_status)(const MYSQLND_CONN_DATA * const conn);
478typedef void (*func_mysqlnd_conn_data__dtor)(MYSQLND_CONN_DATA * conn); /* private */
479
481
482typedef MYSQLND_CONN_DATA * (*func_mysqlnd_conn_data__get_reference)(MYSQLND_CONN_DATA * const conn);
484
485typedef enum_func_status (*func_mysqlnd_conn_data__send_command_do_request)(MYSQLND_CONN_DATA * const conn, const enum php_mysqlnd_server_command command, const zend_uchar * const arg, const size_t arg_len, const bool silent, const bool ignore_upsert_status);
486typedef enum_func_status (*func_mysqlnd_conn_data__send_command_handle_response)(MYSQLND_CONN_DATA * const conn, const enum mysqlnd_packet_type ok_packet, const bool silent, const enum php_mysqlnd_server_command command, const bool ignore_upsert_status);
487
491
492typedef enum_func_status (*func_mysqlnd_conn_data__ssl_set)(MYSQLND_CONN_DATA * const conn, const char * key, const char * const cert, const char * const ca, const char * const capath, const char * const cipher);
493
494typedef MYSQLND_RES * (*func_mysqlnd_conn_data__result_init)(unsigned int field_count);
495
499typedef enum_func_status (*func_mysqlnd_conn_data__tx_begin)(MYSQLND_CONN_DATA * conn, const unsigned int mode, const char * const name);
500typedef enum_func_status (*func_mysqlnd_conn_data__tx_commit_or_rollback)(MYSQLND_CONN_DATA * conn, const bool commit, const unsigned int flags, const char * const name);
501typedef void (*func_mysqlnd_conn_data__tx_cor_options_to_string)(const MYSQLND_CONN_DATA * const conn, smart_str * tmp_str, const unsigned int mode);
504
506typedef unsigned int (*func_mysqlnd_conn_data__get_updated_connect_flags)(MYSQLND_CONN_DATA * conn, unsigned int mysql_flags);
507typedef enum_func_status (*func_mysqlnd_conn_data__connect_handshake)(MYSQLND_CONN_DATA * conn, const MYSQLND_CSTRING * const scheme, const MYSQLND_CSTRING * const username, const MYSQLND_CSTRING * const password, const MYSQLND_CSTRING * const database, const unsigned int mysql_flags);
508typedef struct st_mysqlnd_authentication_plugin * (*func_mysqlnd_conn_data__fetch_auth_plugin_by_name)(const char * const requested_protocol);
509
510typedef enum_func_status (*func_mysqlnd_conn_data__set_client_option_2d)(MYSQLND_CONN_DATA * const conn, const enum_mysqlnd_client_option option, const char * const key, const char * const value);
511
512
515
516typedef MYSQLND_STRING (*func_mysqlnd_conn_data__get_scheme)(MYSQLND_CONN_DATA * conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING *socket_or_pipe, unsigned int port, bool * unix_socket, bool * named_pipe);
517
518
519
521{
532
534
536
540 func_mysqlnd_conn_data__server_dump_debug_information server_dump_debug_information;
542
548
557
561
563
565
571
572 func_mysqlnd_conn_data__query_read_result_set_header query_read_result_set_header;
573
576
580
582
592
597
599
600 func_mysqlnd_conn_data__negotiate_client_api_capabilities negotiate_client_api_capabilities;
601 func_mysqlnd_conn_data__get_client_api_capabilities get_client_api_capabilities;
602
604};
605
606
607typedef enum_func_status (*func_mysqlnd_data__connect)(MYSQLND * conn, const MYSQLND_CSTRING hostname, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, unsigned int port, const MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags);
608typedef MYSQLND * (*func_mysqlnd_conn__clone_object)(MYSQLND * const conn);
611
619
620
621 /* for decoding - binary or text protocol */
623 const unsigned int field_count, const MYSQLND_FIELD * const fields_metadata,
624 const bool as_int_or_float, MYSQLND_STATS * const stats);
625
626
627typedef MYSQLND_RES * (*func_mysqlnd_res__use_result)(MYSQLND_RES * const result, MYSQLND_STMT_DATA *stmt);
628typedef MYSQLND_RES * (*func_mysqlnd_res__store_result)(MYSQLND_RES * result, MYSQLND_CONN_DATA * const conn, MYSQLND_STMT_DATA *stmt);
631typedef uint64_t (*func_mysqlnd_res__num_rows)(const MYSQLND_RES * const result);
632typedef unsigned int (*func_mysqlnd_res__num_fields)(const MYSQLND_RES * const result);
634typedef enum_func_status (*func_mysqlnd_res__seek_data)(MYSQLND_RES * const result, const uint64_t row);
637typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_field)(MYSQLND_RES * const result);
638typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_field_direct)(MYSQLND_RES * const result, const MYSQLND_FIELD_OFFSET fieldnr);
639typedef const MYSQLND_FIELD *(*func_mysqlnd_res__fetch_fields)(MYSQLND_RES * const result);
640
642typedef const size_t * (*func_mysqlnd_res__fetch_lengths)(const MYSQLND_RES * const result);
644
649
650
651typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res__result_meta_init)(MYSQLND_RES *result, unsigned int field_count);
652
654{
655 mysqlnd_fetch_row_func fetch_row;
656
668 func_mysqlnd_res__fetch_field_direct fetch_field_direct;
670 func_mysqlnd_res__read_result_metadata read_result_metadata;
672 func_mysqlnd_res__store_result_fetch_data store_result_fetch_data;
673 func_mysqlnd_res__free_result_buffers free_result_buffers;
675 func_mysqlnd_res__free_result_contents free_result_contents;
676
677 func_mysqlnd_res__result_meta_init result_meta_init;
678
679 void * unused1;
680 void * unused2;
681 void * unused3;
682 void * unused4;
683 void * unused5;
684};
685
686
688typedef const size_t * (*func_mysqlnd_result_unbuffered__fetch_lengths)(const MYSQLND_RES_UNBUFFERED * const result);
690
699
701typedef const size_t * (*func_mysqlnd_result_buffered__fetch_lengths)(const MYSQLND_RES_BUFFERED * const result);
704
714
715
716typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_field)(MYSQLND_RES_METADATA * const meta);
717typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_field_direct)(const MYSQLND_RES_METADATA * const meta, const MYSQLND_FIELD_OFFSET fieldnr);
718typedef const MYSQLND_FIELD * (*func_mysqlnd_res_meta__fetch_fields)(MYSQLND_RES_METADATA * const meta);
722typedef MYSQLND_RES_METADATA * (*func_mysqlnd_res_meta__clone_metadata)(MYSQLND_RES *result, const MYSQLND_RES_METADATA * const meta);
724
736
737
738typedef enum_func_status (*func_mysqlnd_stmt__prepare)(MYSQLND_STMT * const stmt, const char * const query, const size_t query_len);
741typedef MYSQLND_RES * (*func_mysqlnd_stmt__use_result)(MYSQLND_STMT * const stmt);
742typedef MYSQLND_RES * (*func_mysqlnd_stmt__store_result)(MYSQLND_STMT * const stmt);
743typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_result)(MYSQLND_STMT * const stmt);
744typedef bool (*func_mysqlnd_stmt__more_results)(const MYSQLND_STMT * const stmt);
747typedef enum_func_status (*func_mysqlnd_stmt__seek_data)(const MYSQLND_STMT * const stmt, uint64_t row);
749typedef enum_func_status (*func_mysqlnd_stmt__close_on_server)(MYSQLND_STMT * const stmt, bool implicit); /* private */
750typedef enum_func_status (*func_mysqlnd_stmt__dtor)(MYSQLND_STMT * const stmt, bool implicit); /* use this for mysqlnd_stmt_close */
751typedef enum_func_status (*func_mysqlnd_stmt__fetch)(MYSQLND_STMT * const stmt, bool * const fetched_anything);
753typedef enum_func_status (*func_mysqlnd_stmt__bind_one_parameter)(MYSQLND_STMT * const stmt, unsigned int param_no, zval * const zv, zend_uchar type);
756typedef enum_func_status (*func_mysqlnd_stmt__bind_one_result)(MYSQLND_STMT * const stmt, unsigned int param_no);
757typedef enum_func_status (*func_mysqlnd_stmt__send_long_data)(MYSQLND_STMT * const stmt, unsigned int param_num, const char * const data, zend_ulong length);
758typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_parameter_metadata)(MYSQLND_STMT * const stmt);
759typedef MYSQLND_RES * (*func_mysqlnd_stmt__get_result_metadata)(MYSQLND_STMT * const stmt);
760typedef uint64_t (*func_mysqlnd_stmt__get_last_insert_id)(const MYSQLND_STMT * const stmt);
761typedef uint64_t (*func_mysqlnd_stmt__get_affected_rows)(const MYSQLND_STMT * const stmt);
762typedef uint64_t (*func_mysqlnd_stmt__get_num_rows)(const MYSQLND_STMT * const stmt);
763typedef unsigned int (*func_mysqlnd_stmt__get_param_count)(const MYSQLND_STMT * const stmt);
764typedef unsigned int (*func_mysqlnd_stmt__get_field_count)(const MYSQLND_STMT * const stmt);
765typedef unsigned int (*func_mysqlnd_stmt__get_warning_count)(const MYSQLND_STMT * const stmt);
766typedef unsigned int (*func_mysqlnd_stmt__get_error_no)(const MYSQLND_STMT * const stmt);
767typedef const char * (*func_mysqlnd_stmt__get_error_str)(const MYSQLND_STMT * const stmt);
768typedef const char * (*func_mysqlnd_stmt__get_sqlstate)(const MYSQLND_STMT * const stmt);
769typedef enum_func_status (*func_mysqlnd_stmt__get_attribute)(const MYSQLND_STMT * const stmt, enum mysqlnd_stmt_attr attr_type, void * const value);
770typedef enum_func_status (*func_mysqlnd_stmt__set_attribute)(MYSQLND_STMT * const stmt, enum mysqlnd_stmt_attr attr_type, const void * const value);
771typedef MYSQLND_PARAM_BIND *(*func_mysqlnd_stmt__alloc_param_bind)(MYSQLND_STMT * const stmt);
772typedef MYSQLND_RESULT_BIND*(*func_mysqlnd_stmt__alloc_result_bind)(MYSQLND_STMT * const stmt);
775typedef unsigned int (*func_mysqlnd_stmt__server_status)(const MYSQLND_STMT * const stmt);
776typedef enum_func_status (*func_mysqlnd_stmt__generate_execute_request)(MYSQLND_STMT * const s, zend_uchar ** request, size_t *request_len, bool * free_buffer);
781
783{
798
800 func_mysqlnd_stmt__bind_one_parameter bind_one_parameter;
801 func_mysqlnd_stmt__refresh_bind_param refresh_bind_param;
805 func_mysqlnd_stmt__get_result_metadata get_result_metadata;
806
807 func_mysqlnd_stmt__get_last_insert_id get_last_insert_id;
808 func_mysqlnd_stmt__get_affected_rows get_affected_rows;
810
813 func_mysqlnd_stmt__get_warning_count get_warning_count;
814
818
821
822 func_mysqlnd_stmt__alloc_param_bind alloc_parameter_bind;
823 func_mysqlnd_stmt__alloc_result_bind alloc_result_bind;
824
825 func_mysqlnd_stmt__free_parameter_bind free_parameter_bind;
827
828 func_mysqlnd_stmt__server_status get_server_status;
829
830 func_mysqlnd_stmt__generate_execute_request generate_execute_request;
831 func_mysqlnd_stmt__parse_execute_response parse_execute_response;
832
833 func_mysqlnd_stmt__free_stmt_content free_stmt_content;
834
836
838};
839
840
842{
844 bool ssl;
846#ifdef MYSQLND_DO_WIRE_CHECK_BEFORE_COMMAND
847 zend_uchar last_command;
848#else
850#endif
851
853
855};
856
857
859{
861
863};
864
865
866
870
871
877
884
886{
887/* Operation related */
891
892/* Information related */
898 uint64_t thread_id;
906 unsigned int protocol_version;
907 unsigned int port;
909
910 /* For UPSERT queries */
914
915 /* If error packet, we use these */
918
921 /* Temporary storage between query and (use|store)_result() call */
923
924 /*
925 How many result sets reference this connection.
926 It won't be freed until this number reaches 0.
927 The last one, please close the door! :-)
928 The result set objects can determine by inspecting
929 'quit_sent' whether the connection is still valid.
930 */
931 unsigned int refcount;
932
933 /* Temporal storage for mysql_query */
934 unsigned int field_count;
935
936 /* options */
939
940 /* stats */
942
944
949
950 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) object_factory;
951 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) * command;
952 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) * m;
953
954 /* persistent connection */
956};
957
958
965
966
967
981struct st_mysqlnd_packet_auth_pam;
985
1002
1004 MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory,
1005 const enum php_mysqlnd_server_command command,
1006 const zend_uchar * const arg, const size_t arg_len,
1007 const bool silent,
1008
1009 MYSQLND_CONNECTION_STATE * connection_state,
1010 MYSQLND_ERROR_INFO * error_info,
1011 MYSQLND_UPSERT_STATUS * upsert_status,
1012 MYSQLND_STATS * stats,
1014 void * send_close_ctx);
1015
1017 MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const payload_decoder_factory,
1018 MYSQLND_ERROR_INFO * const error_info,
1019 MYSQLND_UPSERT_STATUS * const upsert_status,
1020 const bool ignore_upsert_status, /* actually used only by LOAD DATA. COM_QUERY and COM_EXECUTE handle the responses themselves */
1021 MYSQLND_STRING * const last_message);
1022
1024 MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * const payload_decoder_factory,
1025 MYSQLND_ERROR_INFO * const error_info,
1026 MYSQLND_UPSERT_STATUS * const upsert_status);
1027
1029 MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory,
1030 const enum mysqlnd_packet_type ok_packet,
1031 const bool silent,
1032 const enum php_mysqlnd_server_command command,
1033 const bool ignore_upsert_status, /* actually used only by LOAD DATA. COM_QUERY and COM_EXECUTE handle the responses themselves */
1034
1035 MYSQLND_ERROR_INFO * error_info,
1036 MYSQLND_UPSERT_STATUS * upsert_status,
1037 MYSQLND_STRING * last_message);
1038
1039
1040MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory)
1041{
1058
1063};
1064
1071
1072
1083
1084
1085
1086typedef void (*func_mysqlnd_pfc__init)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const stats, MYSQLND_ERROR_INFO * const error_info);
1087typedef void (*func_mysqlnd_pfc__dtor)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
1088typedef void (*func_mysqlnd_pfc__reset)(MYSQLND_PFC * const pfc, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
1090typedef enum_func_status (*func_mysqlnd_pfc__decode)(zend_uchar * uncompressed_data, const size_t uncompressed_data_len, const zend_uchar * const compressed_data, const size_t compressed_data_len);
1091typedef enum_func_status (*func_mysqlnd_pfc__encode)(zend_uchar * compress_buffer, size_t * compress_buffer_len, const zend_uchar * const uncompressed_data, const size_t uncompressed_data_len);
1092typedef size_t (*func_mysqlnd_pfc__send)(MYSQLND_PFC * const pfc, MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
1093typedef enum_func_status (*func_mysqlnd_pfc__receive)(MYSQLND_PFC * const pfc, MYSQLND_VIO * const vio, zend_uchar * const buffer, const size_t count, MYSQLND_STATS * const conn_stats, MYSQLND_ERROR_INFO * const error_info);
1096
1097MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec)
1098{
1102 func_mysqlnd_pfc__set_client_option set_client_option;
1103
1106
1109
1110 func_mysqlnd_pfc__read_compressed_packet_from_stream_and_fill_read_buffer read_compressed_packet_from_stream_and_fill_read_buffer;
1111
1112 func_mysqlnd_pfc__free_contents free_contents;
1113};
1114
1115
1117{
1120 bool ssl;
1121 uint64_t flags;
1123
1124#ifdef MYSQLND_COMPRESSION_ENABLED
1125 MYSQLND_READ_BUFFER * uncompressed_data;
1126#else
1128#endif
1129
1130 /* sequence for simple checking of correct packets */
1133
1135
1136 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) m;
1137};
1138
1139
1148
1149
1151{
1153
1154 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta) * m;
1155
1156 unsigned int current_field;
1157 unsigned int field_count;
1158};
1159
1160
1162{
1163 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered) m;
1164
1166 uint64_t row_count;
1167
1168 /* Column lengths of current row - both buffered and unbuffered. For buffered results it duplicates the data found in **data */
1169 size_t *lengths;
1170
1172
1173 unsigned int references;
1174
1176
1177 unsigned int field_count;
1179
1180 uint64_t current_row;
1181
1182 void * unused1;
1183 void * unused2;
1184 void * unused3;
1185};
1186
1187
1189{
1190 MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) m;
1191 uint64_t row_count;
1192
1193 /* For unbuffered (both normal and PS) */
1195
1196 /*
1197 Column lengths of current row - both buffered and unbuffered.
1198 For buffered results it duplicates the data found in **data
1199 */
1200 size_t *lengths;
1201
1203
1205
1206 unsigned int field_count;
1207
1209
1211};
1212
1213
1215{
1218 unsigned int field_count;
1219
1222
1223 /* For metadata functions */
1225
1226 /* To be used with store_result() - both normal and PS */
1229
1231
1233};
1234
1235
1242
1248
1249
1282
1283
1289
1290
1292{
1294 const char * plugin_name;
1297 const char * plugin_license;
1298 const char * plugin_author;
1299 struct
1300 {
1304
1305 struct
1306 {
1308 } m;
1309};
1310
1311
1316
1317
1324
1326
1327typedef zend_uchar * (*func_auth_plugin__get_auth_data)(struct st_mysqlnd_authentication_plugin * self,
1328 size_t * auth_data_len,
1329 MYSQLND_CONN_DATA * conn, const char * const user, const char * const passwd,
1330 const size_t passwd_len, zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
1331 const MYSQLND_SESSION_OPTIONS * const session_options,
1332 const MYSQLND_PFC_DATA * const pfc_data, const zend_ulong mysql_flags
1333 );
1334
1336 MYSQLND_CONN_DATA * conn,
1337 const zend_uchar * auth_plugin_data, size_t auth_plugin_data_len,
1338 const char * const passwd,
1339 const size_t passwd_len,
1340 char **new_auth_protocol, size_t *new_auth_protocol_len,
1341 zend_uchar **new_auth_protocol_data, size_t *new_auth_protocol_data_len
1342 );
1343
1352
1353#endif /* MYSQLND_STRUCTS_H */
reset(array|object &$array)
count(Countable|array $value, int $mode=COUNT_NORMAL)
char s[4]
Definition cdf.c:77
error($message)
Definition ext_skel.php:22
zend_ffi_type * type
Definition ffi.c:3812
zval * zv
Definition ffi.c:3975
new_type size
Definition ffi.c:4365
void * ptr
Definition ffi.c:3814
zval * arg
Definition ffi.c:3975
ffi persistent
Definition ffi.c:3633
zend_ffi_ctype_name_buf buf
Definition ffi.c:4685
const php_stream_filter_factory * factory
Definition filters.c:1900
char * mode
enum entity_charset charset
Definition html_tables.h:39
char * debug
Definition mysqlnd.h:298
mysqlnd_connection_state
enum mysqlnd_send_execute_type enum_mysqlnd_send_execute_type
enum mysqlnd_res_type enum_mysqlnd_res_type
#define MYSQLND_ERRMSG_SIZE
enum mysqlnd_client_option enum_mysqlnd_client_option
enum param_bind_flags enum_param_bind_flags
enum mysqlnd_stmt_state enum_mysqlnd_stmt_state
mysqlnd_packet_type
enum mysqlnd_connection_close_type enum_connection_close_type
mysqlnd_stmt_attr
enum mysqlnd_server_option enum_mysqlnd_server_option
php_mysqlnd_server_command
mysqlnd_field_types
#define MYSQLND_SQLSTATE_LENGTH
enum mysqlnd_parse_exec_response_type enum_mysqlnd_parse_exec_response_type
enum mysqlnd_session_protocol_type enum_mysqlnd_session_protocol_type
enum func_status enum_func_status
enum mysqlnd_query_type enum_mysqlnd_query_type
void(* func_mysqlnd_res__free_result_buffers)(MYSQLND_RES *result)
enum_func_status(* func_mysqlnd_result_buffered__data_seek)(MYSQLND_RES_BUFFERED *const result, const uint64_t row)
enum_func_status(* func_mysqlnd_execute_com_stmt_close)(MYSQLND_CONN_DATA *const conn, const zend_ulong stmt_id)
struct st_mysqlnd_cmd_buffer MYSQLND_CMD_BUFFER
enum_func_status(* func_mysqlnd_conn_data__connect)(MYSQLND_CONN_DATA *conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING username, MYSQLND_CSTRING password, MYSQLND_CSTRING database, unsigned int port, MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags)
int(* func_mysqlnd_local_infile__init)(void **ptr, const char *const filename)
const char *(* func_mysqlnd_conn_data__get_host_information)(const MYSQLND_CONN_DATA *const conn)
struct st_mysqlnd_result_metadata MYSQLND_RES_METADATA
enum_func_status(* func_mysqlnd_execute_com_stmt_prepare)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING query)
MYSQLND_PFC *(* func_mysqlnd_object_factory__get_pfc)(const bool persistent, MYSQLND_STATS *stats, MYSQLND_ERROR_INFO *error_info)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_auth_packet)(struct st_mysqlnd_packet_auth *packet)
enum_func_status(* func_mysqlnd_stmt__parse_execute_response)(MYSQLND_STMT *const s, enum_mysqlnd_parse_exec_response_type type)
void(* func_mysqlnd_result_unbuffered__free_result)(MYSQLND_RES_UNBUFFERED *const result, MYSQLND_STATS *const global_stats)
MYSQLND_RES *(* func_mysqlnd_stmt__get_result_metadata)(MYSQLND_STMT *const stmt)
size_t(* func_mysqlnd_pfc__send)(MYSQLND_PFC *const pfc, MYSQLND_VIO *const vio, zend_uchar *const buffer, const size_t count, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_conn_data__ssl_set)(MYSQLND_CONN_DATA *const conn, const char *key, const char *const cert, const char *const ca, const char *const capath, const char *const cipher)
enum_func_status(* func_mysqlnd_conn_data__set_client_option)(MYSQLND_CONN_DATA *const conn, enum_mysqlnd_client_option option, const char *const value)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_change_auth_response_packet)(struct st_mysqlnd_packet_change_auth_response *packet)
MYSQLND_RES *(* func_mysqlnd_res__use_result)(MYSQLND_RES *const result, MYSQLND_STMT_DATA *stmt)
php_stream *(* func_mysqlnd_vio__get_stream)(const MYSQLND_VIO *const vio)
MYSQLND_FIELD_OFFSET(* func_mysqlnd_res_meta__field_tell)(const MYSQLND_RES_METADATA *const meta)
void(* func_mysqlnd_vio__post_connect_set_opt)(MYSQLND_VIO *const vio, const MYSQLND_CSTRING scheme, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
char ** MYSQLND_ROW_C
uint64_t(* func_mysqlnd_res__num_rows)(const MYSQLND_RES *const result)
void(* func_mysqlnd_conn_data__restart_psession)(MYSQLND_CONN_DATA *conn)
unsigned int(* func_mysqlnd_stmt__get_warning_count)(const MYSQLND_STMT *const stmt)
MYSQLND_RES *(* func_mysqlnd_stmt__get_result)(MYSQLND_STMT *const stmt)
struct st_mysqlnd_field MYSQLND_FIELD
enum_func_status(* func_mysqlnd_execute_com_query)(MYSQLND_CONN_DATA *const conn, MYSQLND_CSTRING query)
enum_func_status(* func_mysqlnd_stmt__close_on_server)(MYSQLND_STMT *const stmt, bool implicit)
enum_func_status(* func_mysqlnd_execute_com_handshake)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, const size_t client_flags)
MYSQLND_FIELD_OFFSET(* func_mysqlnd_res_meta__field_seek)(MYSQLND_RES_METADATA *const meta, const MYSQLND_FIELD_OFFSET field_offset)
void(* func_mysqlnd_res__free_buffered_data)(MYSQLND_RES *result)
enum_func_status(* func_mysqlnd_conn_data__set_client_option_2d)(MYSQLND_CONN_DATA *const conn, const enum_mysqlnd_client_option option, const char *const key, const char *const value)
enum_func_status(* func_mysqlnd_stmt__fetch)(MYSQLND_STMT *const stmt, bool *const fetched_anything)
void(* func_mysqlnd_local_infile__end)(void *ptr)
enum_func_status(* func_mysqlnd_stmt__prepare)(MYSQLND_STMT *const stmt, const char *const query, const size_t query_len)
MYSQLND_RES_METADATA *(* func_mysqlnd_res_meta__clone_metadata)(MYSQLND_RES *result, const MYSQLND_RES_METADATA *const meta)
enum_func_status(* func_mysqlnd_res__row_decoder)(MYSQLND_ROW_BUFFER *row_buffer, zval *fields, const unsigned int field_count, const MYSQLND_FIELD *const fields_metadata, const bool as_int_or_float, MYSQLND_STATS *const stats)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_auth_response_packet)(struct st_mysqlnd_packet_auth_response *packet)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_cached_sha2_result_packet)(struct st_mysqlnd_packet_cached_sha2_result *packet)
MYSQLND_RES *(* func_mysqlnd_conn_data__result_init)(unsigned int field_count)
enum_func_status(* func_mysqlnd_execute_com_process_kill)(MYSQLND_CONN_DATA *const conn, const unsigned int process_id, const bool read_response)
enum_func_status(* func_mysqlnd_pfc__read_compressed_packet_from_stream_and_fill_read_buffer)(MYSQLND_PFC *pfc, MYSQLND_VIO *const vio, size_t net_payload_size, MYSQLND_STATS *conn_stats, MYSQLND_ERROR_INFO *error_info)
enum_func_status(* func_mysqlnd_res__seek_data)(MYSQLND_RES *const result, const uint64_t row)
enum_func_status(* func_mysqlnd_stmt__bind_one_result)(MYSQLND_STMT *const stmt, unsigned int param_no)
enum_func_status(* func_mysqlnd_res__read_result_metadata)(MYSQLND_RES *result, MYSQLND_CONN_DATA *conn)
unsigned int(* func_mysqlnd_conn_data__get_protocol_information)(const MYSQLND_CONN_DATA *const conn)
struct st_mysqlnd_infile_info MYSQLND_INFILE_INFO
MYSQLND_STMT *(* func_mysqlnd_conn_data__stmt_init)(MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_execute_com_init_db)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING db)
enum_func_status(* func_mysqlnd_stmt__next_result)(MYSQLND_STMT *const stmt)
void(* func_mysqlnd_res__free_result_contents)(MYSQLND_RES *result)
enum_func_status(* func_mysqlnd_res__free_result)(MYSQLND_RES *result, const bool implicit)
void(* func_mysqlnd_pfc__init)(MYSQLND_PFC *const pfc, MYSQLND_STATS *const stats, MYSQLND_ERROR_INFO *const error_info)
struct st_mysqlnd_vio MYSQLND_VIO
func_mysqlnd_vio__open_stream(* func_mysqlnd_vio__get_open_stream)(MYSQLND_VIO *const vio, const MYSQLND_CSTRING scheme, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_stmt__execute)(MYSQLND_STMT *const stmt)
const char *(* func_mysqlnd_conn_data__get_last_message)(const MYSQLND_CONN_DATA *const conn)
MYSQLND_RES *(* func_mysqlnd_conn_data__store_result)(MYSQLND_CONN_DATA *const conn)
struct st_mysqlnd_upsert_status MYSQLND_UPSERT_STATUS
enum_func_status(* func_mysqlnd_conn_data__set_autocommit)(MYSQLND_CONN_DATA *conn, unsigned int mode)
uint64_t(* func_mysqlnd_result_buffered__num_rows)(const MYSQLND_RES_BUFFERED *const result)
MYSQLND_RES *(* func_mysqlnd_stmt__use_result)(MYSQLND_STMT *const stmt)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_stats_packet)(struct st_mysqlnd_packet_stats *packet)
uint64_t(* func_mysqlnd_stmt__get_affected_rows)(const MYSQLND_STMT *const stmt)
MYSQLND_FIELD_OFFSET(* func_mysqlnd_res__field_tell)(const MYSQLND_RES *const result)
MYSQLND_RES *(* func_mysqlnd_conn_data__use_result)(MYSQLND_CONN_DATA *const conn)
ssize_t(* func_mysqlnd_vio__network_write)(MYSQLND_VIO *const vio, const zend_uchar *const buf, const size_t count, MYSQLND_STATS *const stats, MYSQLND_ERROR_INFO *const error_info)
struct st_mysqlnd_connection_data MYSQLND_CONN_DATA
const MYSQLND_FIELD *(* func_mysqlnd_res__fetch_fields)(MYSQLND_RES *const result)
void(* func_mysqlnd_res_meta__free_metadata)(MYSQLND_RES_METADATA *meta)
struct st_mysqlnd_string MYSQLND_STRING
struct st_mysqlnd_const_string MYSQLND_CSTRING
void(* func_mysqlnd_conn__dtor)(MYSQLND *conn)
size_t(* func_mysqlnd_conn_data__negotiate_client_api_capabilities)(MYSQLND_CONN_DATA *const conn, const size_t flags)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_greet_packet)(struct st_mysqlnd_packet_greet *packet)
enum_func_status(* func_mysqlnd_stmt__send_execute)(MYSQLND_STMT *const s, const enum_mysqlnd_send_execute_type type, zval *read_cb, zval *err_cb)
size_t(* func_mysqlnd_conn_data__get_client_api_capabilities)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_stmt__refresh_bind_param)(MYSQLND_STMT *const stmt)
struct st_mysqlnd_memory_pool MYSQLND_MEMORY_POOL
enum_func_status(* func_mysqlnd_stmt__flush)(MYSQLND_STMT *const stmt)
MYSQLND *(* func_mysqlnd_object_factory__get_connection)(MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) *factory, const bool persistent)
void(* func_mysqlnd_pfc__free_contents)(MYSQLND_PFC *pfc)
#define MYSQLND_CLASS_METHODS_TYPE(class)
enum_func_status(* func_mysqlnd_stmt__get_attribute)(const MYSQLND_STMT *const stmt, enum mysqlnd_stmt_attr attr_type, void *const value)
void(* func_mysqlnd_conn_data__end_psession)(MYSQLND_CONN_DATA *conn)
void(* func_mysqlnd_upsert_status__set_affected_rows_to_error)(MYSQLND_UPSERT_STATUS *const upsert_status)
void(* func_mysqlnd_res__skip_result)(MYSQLND_RES *const result)
enum_func_status(* func_mysqlnd_protocol_payload_decoder_factory__send_command)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY *payload_decoder_factory, const enum php_mysqlnd_server_command command, const zend_uchar *const arg, const size_t arg_len, const bool silent, MYSQLND_CONNECTION_STATE *connection_state, MYSQLND_ERROR_INFO *error_info, MYSQLND_UPSERT_STATUS *upsert_status, MYSQLND_STATS *stats, func_mysqlnd_conn_data__send_close send_close, void *send_close_ctx)
void(* func_mysqlnd_vio__init)(MYSQLND_VIO *const vio, MYSQLND_STATS *const stats, MYSQLND_ERROR_INFO *const error_info)
struct st_mysqlnd_stats MYSQLND_STATS
enum_func_status(* func_mysqlnd_execute_com_refresh)(MYSQLND_CONN_DATA *const conn, const uint8_t options)
const char *(* func_mysqlnd_conn_data__get_sqlstate)(const MYSQLND_CONN_DATA *const conn)
unsigned int(* func_mysqlnd_stmt__get_param_count)(const MYSQLND_STMT *const stmt)
struct st_mysqlnd_protocol_frame_codec MYSQLND_PFC
struct st_mysqlnd_protocol_frame_codec_data MYSQLND_PFC_DATA
struct st_mysqlnd_error_list_element MYSQLND_ERROR_LIST_ELEMENT
void(* func_mysqlnd_stmt__free_parameter_bind)(MYSQLND_STMT *const stmt, MYSQLND_PARAM_BIND *)
zend_ulong(* func_mysqlnd_conn_data__get_server_version)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__tx_begin)(MYSQLND_CONN_DATA *conn, const unsigned int mode, const char *const name)
enum_func_status(* func_mysqlnd_conn_data__query)(MYSQLND_CONN_DATA *conn, const char *const query, const size_t query_len)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_response_packet)(struct st_mysqlnd_packet_sha256_pk_request_response *packet)
enum_func_status(* func_mysqlnd_stmt__bind_result)(MYSQLND_STMT *const stmt, MYSQLND_RESULT_BIND *const result_bind)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_result_field_packet)(struct st_mysqlnd_packet_res_field *packet)
unsigned int MYSQLND_FIELD_OFFSET
MYSQLND_RES_METADATA *(* func_mysqlnd_res__result_meta_init)(MYSQLND_RES *result, unsigned int field_count)
enum_func_status(* func_mysqlnd_conn_data__connect_handshake)(MYSQLND_CONN_DATA *conn, const MYSQLND_CSTRING *const scheme, const MYSQLND_CSTRING *const username, const MYSQLND_CSTRING *const password, const MYSQLND_CSTRING *const database, const unsigned int mysql_flags)
unsigned int(* func_mysqlnd_res__num_fields)(const MYSQLND_RES *const result)
MYSQLND *(* func_mysqlnd_conn__clone_object)(MYSQLND *const conn)
bool(* func_mysqlnd_stmt__more_results)(const MYSQLND_STMT *const stmt)
void(* func_mysqlnd_connection_state__set)(MYSQLND_CONNECTION_STATE *const state_struct, const enum mysqlnd_connection_state state)
struct st_mysqlnd_connection_state MYSQLND_CONNECTION_STATE
unsigned int(* func_mysqlnd_stmt__get_field_count)(const MYSQLND_STMT *const stmt)
enum_func_status(* func_mysqlnd_vio__connect)(MYSQLND_VIO *const vio, const MYSQLND_CSTRING scheme, const bool persistent, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
struct st_mysqlnd_param_bind MYSQLND_PARAM_BIND
enum_func_status(* func_mysqlnd_conn_data__send_command_do_request)(MYSQLND_CONN_DATA *const conn, const enum php_mysqlnd_server_command command, const zend_uchar *const arg, const size_t arg_len, const bool silent, const bool ignore_upsert_status)
enum_func_status(* func_mysqlnd_execute_com_ping)(MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_execute_com_stmt_reset)(MYSQLND_CONN_DATA *const conn, const zend_ulong stmt_id)
uint64_t(* func_mysqlnd_result_unbuffered__num_rows)(const MYSQLND_RES_UNBUFFERED *const result)
struct st_mysqlnd_authentication_plugin *(* func_mysqlnd_conn_data__fetch_auth_plugin_by_name)(const char *const requested_protocol)
struct st_mysqlnd_buffered_result MYSQLND_RES_BUFFERED
MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY *(* func_mysqlnd_object_factory__get_protocol_payload_decoder_factory)(MYSQLND_CONN_DATA *conn, const bool persistent)
enum_func_status(* func_mysqlnd_stmt__send_long_data)(MYSQLND_STMT *const stmt, unsigned int param_num, const char *const data, zend_ulong length)
MYSQLND_RES *(* mysqlnd_stmt_use_or_store_func)(MYSQLND_STMT *const)
uint64_t(* func_mysqlnd_conn_data__get_last_insert_id)(const MYSQLND_CONN_DATA *const conn)
const size_t *(* func_mysqlnd_res__fetch_lengths)(const MYSQLND_RES *const result)
enum_func_status(* func_mysqlnd_data__connect)(MYSQLND *conn, const MYSQLND_CSTRING hostname, const MYSQLND_CSTRING username, const MYSQLND_CSTRING password, const MYSQLND_CSTRING database, unsigned int port, const MYSQLND_CSTRING socket_or_pipe, unsigned int mysql_flags)
enum_func_status(* func_mysqlnd_conn_data__next_result)(MYSQLND_CONN_DATA *const conn)
const size_t *(* func_mysqlnd_result_buffered__fetch_lengths)(const MYSQLND_RES_BUFFERED *const result)
enum_func_status(* func_mysqlnd_execute_com_stmt_send_long_data)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING payload)
enum_func_status(* func_mysqlnd_res__store_result_fetch_data)(MYSQLND_CONN_DATA *const conn, MYSQLND_RES *result, MYSQLND_RES_METADATA *meta, MYSQLND_ROW_BUFFER **row_buffers, bool binary_protocol)
unsigned int(* func_mysqlnd_stmt__server_status)(const MYSQLND_STMT *const stmt)
void(* func_mysqlnd_res__fetch_into)(MYSQLND_RES *result, const unsigned int flags, zval *return_value ZEND_FILE_LINE_DC)
enum_func_status(* func_mysqlnd_vio__disable_ssl)(MYSQLND_VIO *const vio)
void(* func_mysqlnd_error_info__set_client_error)(MYSQLND_ERROR_INFO *const info, const unsigned int err_no, const char *const sqlstate, const char *const error)
const MYSQLND_FIELD *(* func_mysqlnd_res_meta__fetch_field_direct)(const MYSQLND_RES_METADATA *const meta, const MYSQLND_FIELD_OFFSET fieldnr)
enum_func_status(* func_mysqlnd_vio__set_client_option)(MYSQLND_VIO *const vio, enum_mysqlnd_client_option option, const char *const value)
struct st_mysqlnd_unbuffered_result MYSQLND_RES_UNBUFFERED
enum_func_status(* func_mysqlnd_conn_data__shutdown_server)(MYSQLND_CONN_DATA *const conn, uint8_t level)
enum mysqlnd_connection_state(* func_mysqlnd_connection_state__get)(const MYSQLND_CONNECTION_STATE *const state_struct)
void(* func_mysqlnd_stmt__free_stmt_content)(MYSQLND_STMT *const s)
enum_func_status(* func_mysqlnd_execute_com_reap_result)(MYSQLND_CONN_DATA *const conn)
struct st_mysqlnd_infile MYSQLND_INFILE
enum_func_status(* func_mysqlnd_conn_data__send_query)(MYSQLND_CONN_DATA *conn, const char *const query, const size_t query_len, zval *read_cb, zval *err_cb)
struct st_mysqlnd_protocol_payload_decoder_factory MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY
const char *(* func_mysqlnd_stmt__get_sqlstate)(const MYSQLND_STMT *const stmt)
enum_func_status(* func_mysqlnd_stmt__dtor)(MYSQLND_STMT *const stmt, bool implicit)
enum_func_status(* func_mysqlnd_vio__set_stream)(MYSQLND_VIO *const vio, php_stream *vio_stream)
const MYSQLND_FIELD *(* func_mysqlnd_res_meta__fetch_fields)(MYSQLND_RES_METADATA *const meta)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_row_packet)(struct st_mysqlnd_packet_row *packet)
unsigned int(* func_mysqlnd_conn_data__get_field_count)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_stmt__free_result)(MYSQLND_STMT *const stmt)
void(* func_mysqlnd_pfc__dtor)(MYSQLND_PFC *const pfc, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
const char *(* func_mysqlnd_conn_data__charset_name)(const MYSQLND_CONN_DATA *const conn)
size_t(* func_mysqlnd_vio__consume_uneaten_data)(MYSQLND_VIO *const vio, enum php_mysqlnd_server_command cmd)
MYSQLND_STMT *(* func_mysqlnd_object_factory__get_prepared_statement)(MYSQLND_CONN_DATA *conn)
php_stream *(* func_mysqlnd_vio__open_stream)(MYSQLND_VIO *const vio, const MYSQLND_CSTRING scheme, const bool persistent, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_execute_com_set_option)(MYSQLND_CONN_DATA *const conn, const enum_mysqlnd_server_option option)
enum_func_status(* func_mysqlnd_pfc__decode)(zend_uchar *uncompressed_data, const size_t uncompressed_data_len, const zend_uchar *const compressed_data, const size_t compressed_data_len)
struct st_mysqlnd_connection MYSQLND
enum_func_status(* func_mysqlnd_execute_com_change_user)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING payload, const bool silent)
unsigned int(* func_mysqlnd_conn_data__get_warning_count)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__kill_connection)(MYSQLND_CONN_DATA *conn, unsigned int pid)
void(* func_mysqlnd_stmt__free_result_bind)(MYSQLND_STMT *const stmt, MYSQLND_RESULT_BIND *)
enum_func_status(* func_auth_plugin__handle_server_response)(struct st_mysqlnd_authentication_plugin *self, MYSQLND_CONN_DATA *conn, const zend_uchar *auth_plugin_data, size_t auth_plugin_data_len, const char *const passwd, const size_t passwd_len, char **new_auth_protocol, size_t *new_auth_protocol_len, zend_uchar **new_auth_protocol_data, size_t *new_auth_protocol_data_len)
uint64_t(* func_mysqlnd_conn_data__get_affected_rows)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_OK)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY *const payload_decoder_factory, MYSQLND_ERROR_INFO *const error_info, MYSQLND_UPSERT_STATUS *const upsert_status, const bool ignore_upsert_status, MYSQLND_STRING *const last_message)
struct st_mysqlnd_vio_data MYSQLND_VIO_DATA
enum_func_status(* func_mysqlnd_execute_com_enable_ssl)(MYSQLND_CONN_DATA *const conn, const size_t client_capabilities, const size_t server_capabilities, const unsigned int charset_no)
MYSQLND_RES *(* func_mysqlnd_res__store_result)(MYSQLND_RES *result, MYSQLND_CONN_DATA *const conn, MYSQLND_STMT_DATA *stmt)
enum_func_status(* func_mysqlnd_stmt__seek_data)(const MYSQLND_STMT *const stmt, uint64_t row)
enum_func_status(* func_mysqlnd_stmt__reset)(MYSQLND_STMT *const stmt)
struct st_mysqlnd_debug MYSQLND_DEBUG
zend_ulong(* func_mysqlnd_conn_data__escape_string)(MYSQLND_CONN_DATA *const conn, char *newstr, const char *escapestr, size_t escapestr_len)
const char *(* func_mysqlnd_stmt__get_error_str)(const MYSQLND_STMT *const stmt)
void(* func_mysqlnd_conn_data__dtor)(MYSQLND_CONN_DATA *conn)
enum_func_status(* func_mysqlnd_conn_data__execute_init_commands)(MYSQLND_CONN_DATA *conn)
int(* func_mysqlnd_local_infile__error)(void *ptr, char *error_msg, unsigned int error_msg_len)
enum_func_status(* func_mysqlnd_conn_data__set_charset)(MYSQLND_CONN_DATA *const conn, const char *const charset)
uint64_t(* func_mysqlnd_stmt__get_num_rows)(const MYSQLND_STMT *const stmt)
enum_func_status(* func_mysqlnd_execute_com_quit)(MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__set_server_option)(MYSQLND_CONN_DATA *const conn, enum_mysqlnd_server_option option)
MYSQLND_STRING(* func_mysqlnd_conn_data__get_scheme)(MYSQLND_CONN_DATA *conn, MYSQLND_CSTRING hostname, MYSQLND_CSTRING *socket_or_pipe, unsigned int port, bool *unix_socket, bool *named_pipe)
void(* func_mysqlnd_vio__dtor)(MYSQLND_VIO *const vio, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
bool(* func_mysqlnd_vio__has_valid_stream)(const MYSQLND_VIO *const vio)
enum_func_status(* func_mysqlnd_conn_data__reap_query)(MYSQLND_CONN_DATA *conn)
void(* func_mysqlnd_pfc__reset)(MYSQLND_PFC *const pfc, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
MYSQLND_CONN_DATA *(* func_mysqlnd_conn_data__get_reference)(MYSQLND_CONN_DATA *const conn)
unsigned int(* func_mysqlnd_conn_data__get_updated_connect_flags)(MYSQLND_CONN_DATA *conn, unsigned int mysql_flags)
enum_func_status(* func_mysqlnd_execute_com_debug)(MYSQLND_CONN_DATA *const conn)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_rset_header_packet)(struct st_mysqlnd_packet_rset_header *packet)
struct st_mysqlnd_stmt_data MYSQLND_STMT_DATA
enum_func_status(* func_mysqlnd_conn_data__free_reference)(MYSQLND_CONN_DATA *const conn)
uint64_t(* func_mysqlnd_stmt__get_last_insert_id)(const MYSQLND_STMT *const stmt)
const MYSQLND_FIELD *(* func_mysqlnd_res__fetch_field)(MYSQLND_RES *const result)
void(* func_mysqlnd_vio__free_contents)(MYSQLND_VIO *vio)
enum_func_status(* func_mysqlnd_conn_data__tx_commit_or_rollback)(MYSQLND_CONN_DATA *conn, const bool commit, const unsigned int flags, const char *const name)
void(* func_mysqlnd_conn_data__free_options)(MYSQLND_CONN_DATA *conn)
enum_func_status(* func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_EOF)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY *const payload_decoder_factory, MYSQLND_ERROR_INFO *const error_info, MYSQLND_UPSERT_STATUS *const upsert_status)
enum_func_status(* func_mysqlnd_conn__close)(MYSQLND *conn, const enum_connection_close_type close_type)
enum_func_status(* func_mysqlnd_conn_data__tx_rollback)(MYSQLND_CONN_DATA *conn)
struct st_mysqlnd_vio_options MYSQLND_VIO_OPTIONS
unsigned int(* func_mysqlnd_stmt__get_error_no)(const MYSQLND_STMT *const stmt)
void(* func_mysqlnd_error_info__reset)(MYSQLND_ERROR_INFO *const info)
enum_func_status(* func_mysqlnd_conn_data__tx_savepoint_release)(MYSQLND_CONN_DATA *conn, const char *const name)
struct st_mysqlnd_charset MYSQLND_CHARSET
enum_func_status(* func_mysqlnd_vio__enable_ssl)(MYSQLND_VIO *const vio)
void(* func_mysqlnd_conn_data__free_contents)(MYSQLND_CONN_DATA *conn)
const size_t *(* func_mysqlnd_result_unbuffered__fetch_lengths)(const MYSQLND_RES_UNBUFFERED *const result)
enum_func_status(* func_mysqlnd_pfc__set_client_option)(MYSQLND_PFC *const pfc, enum_mysqlnd_client_option option, const char *const value)
void(* func_mysqlnd_stmt__free_stmt_result)(MYSQLND_STMT *const s)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_sha256_pk_request_packet)(struct st_mysqlnd_packet_sha256_pk_request *packet)
enum_func_status(* func_mysqlnd_conn_data__tx_savepoint)(MYSQLND_CONN_DATA *conn, const char *const name)
MYSQLND_VIO *(* func_mysqlnd_object_factory__get_vio)(const bool persistent, MYSQLND_STATS *stats, MYSQLND_ERROR_INFO *error_info)
enum_func_status(* func_mysqlnd_stmt__bind_one_parameter)(MYSQLND_STMT *const stmt, unsigned int param_no, zval *const zv, zend_uchar type)
MYSQLND *(* func_mysqlnd_object_factory__clone_connection_object)(MYSQLND *conn)
const char *(* func_mysqlnd_conn_data__get_server_information)(const MYSQLND_CONN_DATA *const conn)
MYSQLND_RES *(* func_mysqlnd_conn_data__list_method)(MYSQLND_CONN_DATA *conn, const char *const query, const char *const achtung_wild, const char *const par1)
MYSQLND_RESULT_BIND *(* func_mysqlnd_stmt__alloc_result_bind)(MYSQLND_STMT *const stmt)
struct st_mysqlnd_stmt MYSQLND_STMT
MYSQLND_ROW_C(* func_mysqlnd_res__fetch_row_c)(MYSQLND_RES *result)
bool(* func_mysqlnd_conn_data__more_results)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__query_read_result_set_header)(MYSQLND_CONN_DATA *conn, MYSQLND_STMT *stmt)
enum_func_status(* func_mysqlnd_vio__network_read)(MYSQLND_VIO *const vio, zend_uchar *const buffer, const size_t count, MYSQLND_STATS *const stats, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_conn_data__tx_commit)(MYSQLND_CONN_DATA *conn)
void(* func_mysqlnd_conn_data__get_statistics)(const MYSQLND_CONN_DATA *const conn, zval *return_value ZEND_FILE_LINE_DC)
struct st_mysqlnd_result_bind MYSQLND_RESULT_BIND
enum_func_status(* func_mysqlnd_execute_com_stmt_execute)(MYSQLND_CONN_DATA *conn, const MYSQLND_CSTRING payload)
const MYSQLND_FIELD *(* func_mysqlnd_res_meta__fetch_field)(MYSQLND_RES_METADATA *const meta)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_change_user_response_packet)(struct st_mysqlnd_packet_chg_user_resp *packet)
enum_func_status(* func_mysqlnd_stmt__generate_execute_request)(MYSQLND_STMT *const s, zend_uchar **request, size_t *request_len, bool *free_buffer)
enum_func_status(* func_mysqlnd_conn_data__refresh_server)(MYSQLND_CONN_DATA *const conn, uint8_t options)
MYSQLND_RES *(* func_mysqlnd_stmt__store_result)(MYSQLND_STMT *const stmt)
enum_func_status(* func_mysqlnd_res_meta__read_metadata)(MYSQLND_RES_METADATA *const meta, MYSQLND_CONN_DATA *conn, MYSQLND_RES *result)
struct st_mysqlnd_row_buffer MYSQLND_ROW_BUFFER
const MYSQLND_FIELD *(* func_mysqlnd_res__fetch_field_direct)(MYSQLND_RES *const result, const MYSQLND_FIELD_OFFSET fieldnr)
enum_func_status(* func_mysqlnd_conn_data__ping)(MYSQLND_CONN_DATA *const conn)
enum_func_status(* mysqlnd_fetch_row_func)(MYSQLND_RES *result, zval **row, const unsigned int flags, bool *fetched_anything)
zend_uchar *(* func_auth_plugin__get_auth_data)(struct st_mysqlnd_authentication_plugin *self, size_t *auth_data_len, MYSQLND_CONN_DATA *conn, const char *const user, const char *const passwd, const size_t passwd_len, zend_uchar *auth_plugin_data, size_t auth_plugin_data_len, const MYSQLND_SESSION_OPTIONS *const session_options, const MYSQLND_PFC_DATA *const pfc_data, const zend_ulong mysql_flags)
unsigned int(* func_mysqlnd_conn_data__get_error_no)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__send_close)(MYSQLND_CONN_DATA *conn)
void(* func_mysqlnd_conn_data__tx_cor_options_to_string)(const MYSQLND_CONN_DATA *const conn, smart_str *tmp_str, const unsigned int mode)
MYSQLND_FIELD_OFFSET(* func_mysqlnd_res__seek_field)(MYSQLND_RES *const result, const MYSQLND_FIELD_OFFSET field_offset)
int(* func_mysqlnd_local_infile__read)(void *ptr, zend_uchar *buf, unsigned int buf_len)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_ok_packet)(struct st_mysqlnd_packet_ok *packet)
enum_func_status(* func_mysqlnd_execute_com_stmt_fetch)(MYSQLND_CONN_DATA *const conn, const MYSQLND_CSTRING payload)
struct st_mysqlnd_error_info MYSQLND_ERROR_INFO
void(* func_mysqlnd_vio__close_stream)(MYSQLND_VIO *const vio, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_conn_data__send_command_handle_response)(MYSQLND_CONN_DATA *const conn, const enum mysqlnd_packet_type ok_packet, const bool silent, const enum php_mysqlnd_server_command command, const bool ignore_upsert_status)
enum_func_status(* func_mysqlnd_stmt__set_attribute)(MYSQLND_STMT *const stmt, enum mysqlnd_stmt_attr attr_type, const void *const value)
MYSQLND_PARAM_BIND *(* func_mysqlnd_stmt__alloc_param_bind)(MYSQLND_STMT *const stmt)
enum_func_status(* func_mysqlnd_pfc__receive)(MYSQLND_PFC *const pfc, MYSQLND_VIO *const vio, zend_uchar *const buffer, const size_t count, MYSQLND_STATS *const conn_stats, MYSQLND_ERROR_INFO *const error_info)
enum_func_status(* func_mysqlnd_stmt__bind_parameters)(MYSQLND_STMT *const stmt, MYSQLND_PARAM_BIND *const param_bind)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_command_packet)(struct st_mysqlnd_packet_command *packet)
struct st_mysqlnd_session_options MYSQLND_SESSION_OPTIONS
const char *(* func_mysqlnd_conn_data__get_error_str)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_protocol_payload_decoder_factory__send_command_handle_response)(MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY *payload_decoder_factory, const enum mysqlnd_packet_type ok_packet, const bool silent, const enum php_mysqlnd_server_command command, const bool ignore_upsert_status, MYSQLND_ERROR_INFO *error_info, MYSQLND_UPSERT_STATUS *upsert_status, MYSQLND_STRING *last_message)
struct st_mysqlnd_res MYSQLND_RES
enum_func_status(* func_mysqlnd_conn_data__get_server_statistics)(MYSQLND_CONN_DATA *conn, zend_string **message)
enum_func_status(* func_mysqlnd_pfc__encode)(zend_uchar *compress_buffer, size_t *compress_buffer_len, const zend_uchar *const uncompressed_data, const size_t uncompressed_data_len)
uint64_t(* func_mysqlnd_conn_data__get_thread_id)(const MYSQLND_CONN_DATA *const conn)
enum_func_status(* func_mysqlnd_conn_data__change_user)(MYSQLND_CONN_DATA *const conn, const char *user, const char *passwd, const char *db, bool silent, size_t passwd_len)
void(* func_mysqlnd_upsert_status__reset)(MYSQLND_UPSERT_STATUS *const upsert_status)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_prepare_response_packet)(struct st_mysqlnd_packet_prepare_response *packet)
struct st_mysqlnd_read_buffer MYSQLND_READ_BUFFER
enum_func_status(* func_mysqlnd_conn_data__select_db)(MYSQLND_CONN_DATA *const conn, const char *const db, const size_t db_len)
void(* func_mysqlnd_protocol_payload_decoder_factory__init_eof_packet)(struct st_mysqlnd_packet_eof *packet)
enum_func_status(* func_mysqlnd_execute_com_statistics)(MYSQLND_CONN_DATA *const conn, zend_string **message)
void(* func_mysqlnd_result_buffered__free_result)(MYSQLND_RES_BUFFERED *const result)
enum_func_status(* func_mysqlnd_conn_data__server_dump_debug_information)(MYSQLND_CONN_DATA *const conn)
unsigned int(* func_mysqlnd_conn_data__get_server_status)(const MYSQLND_CONN_DATA *const conn)
PHP_JSON_API size_t int options
Definition php_json.h:102
char * error_msg
char sqlstate[6]
unsigned char key[REFLECTION_KEY_LEN]
struct _encode encode
Definition php_soap.h:42
struct _php_stream php_stream
Definition php_streams.h:96
zend_constant * data
#define get_attribute(node, name)
Definition php_xml.h:22
Definition file.h:177
struct st_mysqlnd_plugin_header plugin_header
func_auth_plugin__handle_server_response handle_server_response
struct st_mysqlnd_authentication_plugin::@100167212302147031331007123040307330105264201161 methods
func_auth_plugin__get_auth_data get_auth_data
MYSQLND_ROW_BUFFER * row_buffers
MYSQLND_MEMORY_POOL * result_set_memory_pool
MYSQLND_ERROR_INFO error_info
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_buffered) m
unsigned int char_minlen
unsigned int char_maxlen
unsigned int lowest_mb_byte
MYSQLND_ERROR_INFO error_info_impl
MYSQLND_SESSION_OPTIONS * options
MYSQLND_UPSERT_STATUS * upsert_status
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_command) *command
MYSQLND_SESSION_OPTIONS options_impl
MYSQLND_UPSERT_STATUS upsert_status_impl
enum_mysqlnd_query_type last_query_type
MYSQLND_STRING authentication_plugin_data
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn_data) *m
MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY * payload_decoder_factory
MYSQLND_ERROR_INFO * error_info
const MYSQLND_CHARSET * greet_charset
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_object_factory) object_factory
const MYSQLND_CHARSET * charset
MYSQLND_STRING connect_or_select_db
MYSQLND_CONNECTION_STATE state
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_connection_state) *m
enum mysqlnd_connection_state state
MYSQLND_CONN_DATA * data
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_conn) *m
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_error_info) *m
char sqlstate[MYSQLND_SQLSTATE_LENGTH+1]
char error[MYSQLND_ERRMSG_SIZE+1]
char sqlstate[MYSQLND_SQLSTATE_LENGTH+1]
unsigned int def_length
unsigned int db_length
const char * catalog
const char * table
const char * org_table
unsigned int flags
unsigned int org_table_length
unsigned int name_length
unsigned int org_name_length
enum mysqlnd_field_types type
const char * org_name
unsigned int catalog_length
unsigned int decimals
zend_string * sname
unsigned int table_length
const char * name
unsigned int charsetnr
char error_msg[MYSQLND_ERRMSG_SIZE+1]
func_mysqlnd_local_infile__init local_infile_init
func_mysqlnd_local_infile__end local_infile_end
func_mysqlnd_local_infile__error local_infile_error
func_mysqlnd_local_infile__read local_infile_read
enum_param_bind_flags flags
struct st_mysqlnd_plugin_header plugin_header
enum_func_status(* plugin_shutdown)(void *plugin)
struct st_mysqlnd_plugin_header::@230331340146370337307336142341316306046071113111 plugin_stats
struct st_mysqlnd_plugin_header::@062367037263132256212260151337323046270005127260 m
const MYSQLND_STRING * names
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_packet_frame_codec) m
struct st_mysqlnd_protocol_frame_codec_data * data
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_protocol_payload_decoder_factory) m
void(* read)(struct st_mysqlnd_read_buffer *, size_t count, zend_uchar *dest)
void(* free_buffer)(struct st_mysqlnd_read_buffer **)
size_t(* bytes_left)(const struct st_mysqlnd_read_buffer *)
bool(* is_empty)(const struct st_mysqlnd_read_buffer *)
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) m
MYSQLND_RES_METADATA * meta
MYSQLND_RES_UNBUFFERED * unbuf
MYSQLND_RES_BUFFERED * stored_data
MYSQLND_CONN_DATA * conn
unsigned int field_count
enum_mysqlnd_res_type type
MYSQLND_MEMORY_POOL * memory_pool
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res_meta) *m
enum_mysqlnd_session_protocol_type protocol
MYSQLND_ERROR_INFO error_info_impl
enum_mysqlnd_stmt_state state
mysqlnd_stmt_use_or_store_func default_rset_handler
MYSQLND_CMD_BUFFER execute_cmd_buffer
unsigned char send_types_to_server
MYSQLND_ERROR_INFO * error_info
MYSQLND_UPSERT_STATUS * upsert_status
MYSQLND_PARAM_BIND * param_bind
MYSQLND_UPSERT_STATUS upsert_status_impl
MYSQLND_RESULT_BIND * result_bind
MYSQLND_CONN_DATA * conn
MYSQLND_STMT_DATA * data
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) *m
struct st_mysqlnd_plugin_header plugin_header
MYSQLND_MEMORY_POOL * result_set_memory_pool
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_result_unbuffered) m
struct st_mysqlnd_packet_row * row_packet
MYSQLND_ROW_BUFFER last_row_buffer
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_upsert_status) *m
MYSQLND_VIO_OPTIONS options
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_vio) m
enum st_mysqlnd_vio_options::mysqlnd_ssl_peer ssl_verify_peer
struct st_mysqlnd_vio_data * data
#define close(a)
struct _zend_arena zend_arena
Definition zend_arena.h:26
struct _zval_struct zval
ZEND_API void(ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
struct _zend_llist zend_llist
uint32_t zend_ulong
Definition zend_long.h:43
struct _zend_string zend_string
#define ZEND_FILE_LINE_DC
struct _zend_array HashTable
Definition zend_types.h:386
unsigned char zend_uchar
Definition zend_types.h:57
zval * return_value
zend_string * name
bool result
value