📄 mysql.h
字号:
MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res);MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res);unsigned int STDCALL mysql_field_count(MYSQL *mysql);my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql);my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql);unsigned int STDCALL mysql_errno(MYSQL *mysql);const char * STDCALL mysql_error(MYSQL *mysql);const char *STDCALL mysql_sqlstate(MYSQL *mysql);unsigned int STDCALL mysql_warning_count(MYSQL *mysql);const char * STDCALL mysql_info(MYSQL *mysql);unsigned long STDCALL mysql_thread_id(MYSQL *mysql);const char * STDCALL mysql_character_set_name(MYSQL *mysql);int STDCALL mysql_set_character_set(MYSQL *mysql, char *csname);MYSQL * STDCALL mysql_init(MYSQL *mysql);my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert, const char *ca, const char *capath, const char *cipher);my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db);MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag);int STDCALL mysql_select_db(MYSQL *mysql, const char *db);int STDCALL mysql_query(MYSQL *mysql, const char *q);int STDCALL mysql_send_query(MYSQL *mysql, const char *q, unsigned long length);int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);/* perform query on master */my_bool STDCALL mysql_master_query(MYSQL *mysql, const char *q, unsigned long length);my_bool STDCALL mysql_master_send_query(MYSQL *mysql, const char *q, unsigned long length);/* perform query on slave */ my_bool STDCALL mysql_slave_query(MYSQL *mysql, const char *q, unsigned long length);my_bool STDCALL mysql_slave_send_query(MYSQL *mysql, const char *q, unsigned long length);/* local infile support */#define LOCAL_INFILE_ERROR_LEN 512voidmysql_set_local_infile_handler(MYSQL *mysql, int (*local_infile_init)(void **, const char *, void *), int (*local_infile_read)(void *, char *, unsigned int), void (*local_infile_end)(void *), int (*local_infile_error)(void *, char*, unsigned int), void *);voidmysql_set_local_infile_default(MYSQL *mysql);/* enable/disable parsing of all queries to decide if they go on master or slave*/void STDCALL mysql_enable_rpl_parse(MYSQL* mysql);void STDCALL mysql_disable_rpl_parse(MYSQL* mysql);/* get the value of the parse flag */ int STDCALL mysql_rpl_parse_enabled(MYSQL* mysql);/* enable/disable reads from master */void STDCALL mysql_enable_reads_from_master(MYSQL* mysql);void STDCALL mysql_disable_reads_from_master(MYSQL* mysql);/* get the value of the master read flag */ my_bool STDCALL mysql_reads_from_master_enabled(MYSQL* mysql);enum mysql_rpl_type STDCALL mysql_rpl_query_type(const char* q, int len); /* discover the master and its slaves */ my_bool STDCALL mysql_rpl_probe(MYSQL* mysql);/* set the master, close/free the old one, if it is not a pivot */int STDCALL mysql_set_master(MYSQL* mysql, const char* host, unsigned int port, const char* user, const char* passwd);int STDCALL mysql_add_slave(MYSQL* mysql, const char* host, unsigned int port, const char* user, const char* passwd);int STDCALL mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level);int STDCALL mysql_dump_debug_info(MYSQL *mysql);int STDCALL mysql_refresh(MYSQL *mysql, unsigned int refresh_options);int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid);int STDCALL mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option);int STDCALL mysql_ping(MYSQL *mysql);const char * STDCALL mysql_stat(MYSQL *mysql);const char * STDCALL mysql_get_server_info(MYSQL *mysql);const char * STDCALL mysql_get_client_info(void);unsigned long STDCALL mysql_get_client_version(void);const char * STDCALL mysql_get_host_info(MYSQL *mysql);unsigned long STDCALL mysql_get_server_version(MYSQL *mysql);unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild);MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg);void STDCALL mysql_free_result(MYSQL_RES *result);void STDCALL mysql_data_seek(MYSQL_RES *result, my_ulonglong offset);MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset);MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset);MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result);MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result);MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, const char *wild);unsigned long STDCALL mysql_escape_string(char *to,const char *from, unsigned long from_length);unsigned long STDCALL mysql_hex_string(char *to,const char *from, unsigned long from_length);unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, unsigned long length);void STDCALL mysql_debug(const char *debug);char * STDCALL mysql_odbc_escape_string(MYSQL *mysql, char *to, unsigned long to_length, const char *from, unsigned long from_length, void *param, char * (*extend_buffer) (void *, char *to, unsigned long *length));void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name);unsigned int STDCALL mysql_thread_safe(void);my_bool STDCALL mysql_embedded(void);MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, const char* host, const char* user, const char* passwd, unsigned int port);void STDCALL mysql_manager_close(MYSQL_MANAGER* con);int STDCALL mysql_manager_command(MYSQL_MANAGER* con, const char* cmd, int cmd_len);int STDCALL mysql_manager_fetch_line(MYSQL_MANAGER* con, char* res_buf, int res_buf_size);my_bool STDCALL mysql_read_query_result(MYSQL *mysql);/* The following definitions are added for the enhanced client-server protocol*//* statement state */enum enum_mysql_stmt_state{ MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, MYSQL_STMT_FETCH_DONE};/* bind structure */typedef struct st_mysql_bind{ unsigned long *length; /* output length pointer */ my_bool *is_null; /* Pointer to null indicator */ void *buffer; /* buffer to get/put data */ enum enum_field_types buffer_type; /* buffer type */ unsigned long buffer_length; /* buffer length, must be set for str/binary */ /* Following are for internal use. Set by mysql_stmt_bind_param */ unsigned char *inter_buffer; /* for the current data position */ unsigned long offset; /* offset position for char/binary fetch */ unsigned long internal_length; /* Used if length is 0 */ unsigned int param_number; /* For null count and error messages */ unsigned int pack_length; /* Internal length for packed data */ my_bool is_unsigned; /* set if integer type is unsigned */ my_bool long_data_used; /* If used with mysql_send_long_data */ my_bool internal_is_null; /* Used if is_null is 0 */ void (*store_param_func)(NET *net, struct st_mysql_bind *param); void (*fetch_result)(struct st_mysql_bind *, unsigned char **row); void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, unsigned char **row);} MYSQL_BIND;/* statement handler */typedef struct st_mysql_stmt{ MEM_ROOT mem_root; /* root allocations */ LIST list; /* list to keep track of all stmts */ MYSQL *mysql; /* connection handle */ MYSQL_BIND *params; /* input parameters */ MYSQL_BIND *bind; /* output parameters */ MYSQL_FIELD *fields; /* result set metadata */ MYSQL_DATA result; /* cached result set */ MYSQL_ROWS *data_cursor; /* current row in cached result */ /* copy of mysql->affected_rows after statement execution */ my_ulonglong affected_rows; my_ulonglong insert_id; /* copy of mysql->insert_id */ /* mysql_stmt_fetch() calls this function to fetch one row (it's different for buffered, unbuffered and cursor fetch). */ int (*read_row_func)(struct st_mysql_stmt *stmt, unsigned char **row); unsigned long stmt_id; /* Id for prepared statement */ unsigned int last_errno; /* error code */ unsigned int param_count; /* input parameter count */ unsigned int field_count; /* number of columns in result set */ enum enum_mysql_stmt_state state; /* statement state */ char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ char sqlstate[SQLSTATE_LENGTH+1]; /* Types of input parameters should be sent to server */ my_bool send_types_to_server; my_bool bind_param_done; /* input buffers were supplied */ my_bool bind_result_done; /* output buffers were supplied */ /* mysql_stmt_close() had to cancel this result */ my_bool unbuffered_fetch_cancelled; /* Is set to true if we need to calculate field->max_length for metadata fields when doing mysql_stmt_store_result. */ my_bool update_max_length; } MYSQL_STMT;enum enum_stmt_attr_type{ /* When doing mysql_stmt_store_result calculate max_length attribute of statement metadata. This is to be consistent with the old API, where this was done automatically. In the new API we do that only by request because it slows down mysql_stmt_store_result sufficiently. */ STMT_ATTR_UPDATE_MAX_LENGTH};typedef struct st_mysql_methods{ my_bool (*read_query_result)(MYSQL *mysql); my_bool (*advanced_command)(MYSQL *mysql, enum enum_server_command command, const char *header, unsigned long header_length, const char *arg, unsigned long arg_length, my_bool skip_check); MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, unsigned int fields); MYSQL_RES * (*use_result)(MYSQL *mysql); void (*fetch_lengths)(unsigned long *to, MYSQL_ROW column, unsigned int field_count); void (*flush_use_result)(MYSQL *mysql);#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) MYSQL_FIELD * (*list_fields)(MYSQL *mysql); my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); int (*stmt_execute)(MYSQL_STMT *stmt); int (*read_binary_rows)(MYSQL_STMT *stmt); int (*unbuffered_fetch)(MYSQL *mysql, char **row); void (*free_embedded_thd)(MYSQL *mysql); const char *(*read_statistics)(MYSQL *mysql); my_bool (*next_result)(MYSQL *mysql); int (*read_change_user_result)(MYSQL *mysql, char *buff, const char *passwd);#endif} MYSQL_METHODS;MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql);int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, unsigned long length);int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt);int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt);int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind, unsigned int column, unsigned long offset);int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt);unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt);my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, const void *attr);my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, enum enum_stmt_attr_type attr_type, void *attr);my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd);my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd);my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt);my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt);my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt);my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, unsigned int param_number, const char *data, unsigned long length);MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt);MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt);unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt);const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt);const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt);MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET offset);MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt);void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset);my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt);my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt);my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt);unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt);my_bool STDCALL mysql_commit(MYSQL * mysql);my_bool STDCALL mysql_rollback(MYSQL * mysql);my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode);my_bool STDCALL mysql_more_results(MYSQL *mysql);int STDCALL mysql_next_result(MYSQL *mysql);void STDCALL mysql_close(MYSQL *sock);/* status return codes */#define MYSQL_NO_DATA 100#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)#ifdef USE_OLD_FUNCTIONSMYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd);int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)#endif#define HAVE_MYSQL_REAL_CONNECT/* The following functions are mainly exported because of mysqlbinlog; They are not for general usage*/#define simple_command(mysql, command, arg, length, skip_check) \ (*(mysql)->methods->advanced_command)(mysql, command, \ NullS, 0, arg, length, skip_check)unsigned long net_safe_read(MYSQL* mysql);#ifdef __NETWARE__#pragma pack(pop) /* restore alignment */#endif#ifdef __cplusplus}#endif#endif /* _mysql_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -