⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqlnd.h

📁 linux下安装不上mysql5与php5的可用此关联
💻 H
📖 第 1 页 / 共 3 页
字号:
struct st_mysqlnd_result_metadata {	MYSQLND_FIELD					*fields;	struct mysqlnd_field_hash_key	*zend_hash_keys;	unsigned int					current_field;	unsigned int					field_count;};struct st_mysqlnd_buffered_result {	zval				***data;	zval				***data_cursor;	zend_uchar			**row_buffers;	mynd_ulonglong		row_count;	zend_bool			persistent;	MYSQLND_QCACHE		*qcache;	unsigned int		references;};struct st_mysqlnd_unbuffered_result {	/* For unbuffered (both normal and PS) */	zval				**last_row_data;	zend_uchar			*last_row_buffer;	mynd_ulonglong		row_count;	zend_bool			eof_reached;};struct st_mysqlnd_res {	MYSQLND					*conn;	enum_mysqlnd_res_type	type;	unsigned int			field_count;	/* For metadata functions */	MYSQLND_RES_METADATA * meta;	/* To be used with store_result() - both normal and PS */	MYSQLND_RES_BUFFERED * data;	MYSQLND_RES_UNBUFFERED * unbuf;	/*	  Column lengths of current row - both buffered and unbuffered.	  For buffered results it duplicates the data found in **data 	*/	unsigned long		*lengths;	php_mysql_packet_row	*row_packet;	/* Unused for PS */	/* zval cache */	MYSQLND_ZVAL_PCACHE	*zval_cache;	struct st_mysqlnd_res_methods m;};#define MYSQLND_DEFAULT_PREFETCH_ROWS (ulong) 1struct st_mysqlnd_param_bind {	zval		*zv;	zend_uchar	type;	enum_param_bind_flags	flags;};struct st_mysqlnd_result_bind {	zval		*zv;	zend_uchar	original_type;	zend_bool	bound;};struct st_mysqlnd_stmt {	MYSQLND						*conn;	unsigned long				stmt_id;	unsigned long				flags;/* cursor is set here */	enum_mysqlnd_stmt_state		state;	unsigned int				warning_count;	MYSQLND_RES					*result;	unsigned int				field_count;	unsigned int				param_count;	unsigned char				send_types_to_server;	MYSQLND_PARAM_BIND			*param_bind;	MYSQLND_RESULT_BIND			*result_bind;	zend_bool					result_zvals_separated_once;	mysqlnd_upsert_status		upsert_status;	mysqlnd_error_info			error_info;	zend_bool					update_max_length;	unsigned long				prefetch_rows;	zend_bool					cursor_exists;	mysqlnd_stmt_use_or_store_func default_rset_handler;	MYSQLND_CMD_BUFFER			cmd_buffer;	struct st_mysqlnd_stmt_methods	*m;};/* Library related */PHPAPI void		mysqlnd_library_init();PHPAPI void 	mysqlnd_library_end();PHPAPI void 	mysqlnd_restart_psession(MYSQLND *conn);PHPAPI void 	mysqlnd_end_psession(MYSQLND *conn);#define mysqlnd_thread_safe()	TRUEconst MYSQLND_CHARSET * mysqlnd_find_charset_nr(uint charsetno);const MYSQLND_CHARSET * mysqlnd_find_charset_name(const char * const charsetname);/* Connect */PHPAPI MYSQLND * mysqlnd_init(zend_bool persistent);PHPAPI MYSQLND * mysqlnd_connect(MYSQLND *conn,						  char *host, char *user,						  char *passwd, unsigned int passwd_len,						  char *db, unsigned int db_len,						  unsigned int port,						  char *socket,						  unsigned int mysql_flags,						  MYSQLND_ZVAL_PCACHE *zval_cache TSRMLS_DC);#define mysqlnd_change_user(conn, user, passwd, db)		(conn)->m->change_user((conn), (user), (passwd), (db) TSRMLS_CC)/* Query */#define mysqlnd_fetch_into(result, flags, return_value)	(result)->m.fetch_into((result), (flags), (return_value) TSRMLS_CC ZEND_FILE_LINE_CC)#define mysqlnd_fetch_all(result, flags, return_value)	(result)->m.fetch_all((result), (flags), (return_value) TSRMLS_CC ZEND_FILE_LINE_CC)#define mysqlnd_get_connection_stats(conn, values)		(conn)->m->get_statistics((conn),  (values) TSRMLS_CC ZEND_FILE_LINE_CC)#define mysqlnd_get_client_stats(values)				_mysqlnd_get_client_stats((values) TSRMLS_CC ZEND_FILE_LINE_CC)#define mysqlnd_close(conn,is_forced)					(conn)->m->close((conn), (is_forced) TSRMLS_CC)#define mysqlnd_query(conn, query_str, query_len)		(conn)->m->query((conn), (query_str), (query_len) TSRMLS_CC)#define mysqlnd_unbuffered_skip_result(result)			(result)->m.skip_result((result) TSRMLS_CC)#define mysqlnd_use_result(conn)		(conn)->m->use_result((conn) TSRMLS_CC)#define mysqlnd_store_result(conn)		(conn)->m->store_result((conn) TSRMLS_CC)#define mysqlnd_next_result(conn)		(conn)->m->next_result((conn) TSRMLS_CC)#define mysqlnd_more_results(conn)		(conn)->m->more_results((conn))#define mysqlnd_free_result(r,e_or_i)	((MYSQLND_RES*)r)->m.free_result(((MYSQLND_RES*)(r)), (e_or_i) TSRMLS_CC)#define mysqlnd_data_seek(result, row)	(result)->m.seek_data((result), (row))/*****************************************************************************************************/#if defined(MYSQLND_USE_OPTIMISATIONS) && MYSQLND_USE_OPTIMISATIONS == 1/* Errors */#define mysqlnd_errno(conn)				(conn)->error_info.error_no#define mysqlnd_error(conn)				(conn)->error_info.error#define mysqlnd_sqlstate(conn)  		((conn)->error_info.sqlstate[0] ? conn->error_info.sqlstate:MYSQLND_SQLSTATE_NULL)/* Simple metadata */#define mysqlnd_field_count(conn)		(conn)->field_count#define mysqlnd_insert_id(conn)			(conn)->upsert_status.last_insert_id#define mysqlnd_affected_rows(conn)		(conn)->upsert_status.affected_rows#define mysqlnd_warning_count(conn)		(conn)->upsert_status.warning_count#define mysqlnd_info(conn)  			(conn)->last_message#define mysqlnd_get_server_info(conn)	(conn)->server_version#define mysqlnd_get_host_info(conn)		(conn)->host_info#define mysqlnd_get_proto_info(conn)	(conn)->protocol_version#define mysqlnd_thread_id(conn)			(conn)->thread_id#define mysqlnd_num_rows(result)		((result)->data? (result)->data->row_count:0)#define mysqlnd_num_fields(result)		(result)->field_count#define mysqlnd_fetch_lengths(result)	((result)->m.fetch_lengths? (result)->m.fetch_lengths((result)):NULL)#define mysqlnd_field_seek(result, ofs)			(result)->m.seek_field((result), (ofs))#define mysqlnd_field_tell(result)				((result)->meta? (result)->meta->current_field:0)#define mysqlnd_fetch_field(result)				(result)->m.fetch_field((result))#define mysqlnd_fetch_field_direct(result,fnr)	((result)->meta? &((result)->meta->fields[(fnr)]):NULL)/* mysqlnd metadata */#define mysqlnd_get_client_info()		MYSQLND_VERSION#define mysqlnd_get_client_version()	MYSQLND_VERSION_ID/* PS */#define mysqlnd_stmt_insert_id(stmt)		(stmt)->upsert_status.last_insert_id#define mysqlnd_stmt_affected_rows(stmt)	(stmt)->upsert_status.affected_rows#define mysqlnd_stmt_num_rows(stmt)			(stmt)->result? mysqlnd_num_rows((stmt)->result):0#define mysqlnd_stmt_param_count(stmt)		(stmt)->param_count#define mysqlnd_stmt_field_count(stmt)		(stmt)->field_count#define mysqlnd_stmt_warning_count(stmt)	(stmt)->upsert_status.warning_count#define mysqlnd_stmt_errno(stmt)			(stmt)->error_info.error_no#define mysqlnd_stmt_error(stmt)			(stmt)->error_info.error#define mysqlnd_stmt_sqlstate(stmt)			((stmt)->error_info.sqlstate[0] ? (stmt)->error_info.sqlstate:MYSQLND_SQLSTATE_NULL)/*****************************************************************************************************/#else /* Using plain functions *//*****************************************************************************************************//* Errors */#define mysqlnd_errno(conn)				(conn)->m->get_error_no(conn)#define mysqlnd_error(conn)				(conn)->m->get_error_str(conn)#define mysqlnd_sqlstate(conn)  		(conn)->m->get_sqlstate(conn)/* Simple metadata */#define mysqlnd_field_count(conn)		(conn)->m->get_field_count((conn))#define mysqlnd_insert_id(conn)			(conn)->m->get_last_insert_id((conn))#define mysqlnd_affected_rows(conn)		(conn)->m->get_affected_rows((conn))#define mysqlnd_warning_count(conn)		(conn)->m->get_warning_count((conn))#define mysqlnd_info(conn)				(conn)->m->get_last_message((conn))#define mysqlnd_get_server_info(conn)	(conn)->m->get_server_information((conn))#define mysqlnd_get_host_info(conn)		(conn)->m->get_host_information((conn))#define mysqlnd_get_proto_info(conn)	(conn)->m->get_protocol_information((conn))#define mysqlnd_thread_id(conn)			(conn)->m->get_thread_id((conn))#define mysqlnd_num_rows(result)		(result)->m.num_rows((result))#define mysqlnd_num_fields(result)		(result)->m.num_fields((result))PHPAPI unsigned long *	_mysqlnd_fetch_lengths(MYSQLND_RES * const result);#define mysqlnd_fetch_lengths(result)	_mysqlnd_fetch_lengths((result))#define mysqlnd_field_seek(result, ofs)			(result)->m.seek_field((result), (ofs))#define mysqlnd_field_tell(result)				(result)->m.field_tell((result))#define mysqlnd_fetch_field(result)				(result)->m.fetch_field((result))#define mysqlnd_fetch_field_direct(result,fnr)	(result)->m.fetch_field_direct((result), (fnr))/* mysqlnd metadata */const char *	_mysqlnd_get_client_info();unsigned int	_mysqlnd_get_client_version();#define mysqlnd_get_client_info			_mysqlnd_get_client_info#define mysqlnd_get_client_version		_mysqlnd_get_client_version/* PS */#define mysqlnd_stmt_insert_id(stmt)		(stmt)->m->get_last_insert_id((stmt))#define mysqlnd_stmt_affected_rows(stmt)	(stmt)->m->get_affected_rows((stmt))#define mysqlnd_stmt_num_rows(stmt)			(stmt)->m->get_num_rows((stmt))#define mysqlnd_stmt_param_count(stmt)		(stmt)->m->get_param_count((stmt))#define mysqlnd_stmt_field_count(stmt)		(stmt)->m->get_field_count((stmt))#define mysqlnd_stmt_warning_count(stmt)	(stmt)->m->get_warning_count((stmt))#define mysqlnd_stmt_errno(stmt)			(stmt)->m->get_error_no((stmt))#define mysqlnd_stmt_error(stmt)			(stmt)->m->get_error_str((stmt))#define mysqlnd_stmt_sqlstate(stmt)			(stmt)->m->get_sqlstate((stmt))#endif /* MYSQLND_USE_OPTIMISATIONS *//*****************************************************************************************************/const char *		mysqlnd_field_type_name(enum mysqlnd_field_types field_type);/* LOAD DATA LOCAL */PHPAPI void			mysqlnd_local_infile_default(MYSQLND *conn);PHPAPI void 		mysqlnd_set_local_infile_handler(MYSQLND * const conn, const char * const funcname);/* Simple commands */#define mysqlnd_autocommit(conn, mode)		(conn)->m->query((conn),(mode) ? "SET AUTOCOMMIT=1":"SET AUTOCOMMIT=0", 16 TSRMLS_CC)#define mysqlnd_commit(conn)				(conn)->m->query((conn), "COMMIT", sizeof("COMMIT")-1 TSRMLS_CC)#define mysqlnd_rollback(conn)				(conn)->m->query((conn), "ROLLBACK", sizeof("ROLLBACK")-1 TSRMLS_CC)#define mysqlnd_dump_debug_info(conn)		(conn)->m->server_dump_debug_information((conn) TSRMLS_CC)#define mysqlnd_select_db(conn, db, db_len)	(conn)->m->select_db((conn), (db), (db_len) TSRMLS_CC)#define mysqlnd_ping(conn)					(conn)->m->ping((conn) TSRMLS_CC)#define mysqlnd_kill(conn, pid)				(conn)->m->kill_connection((conn), (pid) TSRMLS_CC)#define mysqlnd_refresh(conn, options)		(conn)->m->refresh_server((conn), (options) TSRMLS_CC) #define mysqlnd_shutdown(conn, level)		(conn)->m->shutdown_server((conn), (level) TSRMLS_CC)#define mysqlnd_get_server_version(conn)	(conn)->m->get_server_version((conn))#define mysqlnd_set_charset(conn, charset)	(conn)->m->set_charset((conn), (charset) TSRMLS_CC)#define mysqlnd_stat(conn, msg, msg_len)	(conn)->m->get_server_statistics((conn), (msg), (msg_len) TSRMLS_CC)#define mysqlnd_options(conn, opt, value)	(conn)->m->set_client_option((conn), (opt), (value))#define mysqlnd_set_server_option(conn, op)	(conn)->m->set_server_option((conn), (op) TSRMLS_CC)/* Misc */#define mysqlnd_real_escape_string(conn, newstr, escapestr, escapestr_len) \		(conn)->m->escape_string((conn), (newstr), (escapestr), (escapestr_len))/* PS */#define mysqlnd_stmt_init(conn)				(conn)->m->stmt_init((conn))#define mysqlnd_stmt_store_result(stmt)		(!mysqlnd_stmt_field_count((stmt)) ? PASS:((stmt)->m->store_result((stmt) TSRMLS_CC)? PASS:FAIL))#define mysqlnd_stmt_data_seek(stmt, row)	(stmt)->m->seek_data((stmt), (row))#define mysqlnd_stmt_prepare(stmt, q, qlen)	(stmt)->m->prepare((stmt), (q), (qlen) TSRMLS_CC)#define mysqlnd_stmt_execute(stmt) 			(stmt)->m->execute((stmt) TSRMLS_CC)#define mysqlnd_stmt_send_long_data(s,p,d,l) (s)->m->send_long_data((s), (p), (d), (l) TSRMLS_CC)#define mysqlnd_stmt_bind_param(stmt,bind)	(stmt)->m->bind_param((stmt), (bind))#define mysqlnd_stmt_bind_result(stmt,bind)	(stmt)->m->bind_result((stmt), (bind))#define mysqlnd_stmt_param_metadata(stmt)	(stmt)->m->get_parameter_metadata((stmt))#define mysqlnd_stmt_result_metadata(stmt)	(stmt)->m->get_result_metadata((stmt))#define	mysqlnd_stmt_free_result(stmt)		(stmt)->m->free_result((stmt) TSRMLS_CC)#define	mysqlnd_stmt_close(stmt, implicit)	(stmt)->m->dtor((stmt), (implicit) TSRMLS_CC)#define	mysqlnd_stmt_reset(stmt)			(stmt)->m->reset((stmt) TSRMLS_CC)#define mysqlnd_stmt_attr_get(stmt, attr, value)	(stmt)->m->get_attribute((stmt), (attr), (value))#define mysqlnd_stmt_attr_set(stmt, attr, value)	(stmt)->m->set_attribute((stmt), (attr), (value))PHPAPI enum_func_status	mysqlnd_stmt_fetch(MYSQLND_STMT * const stmt, zend_bool * const fetched_anything TSRMLS_DC);/* Performance statistics */PHPAPI void			_mysqlnd_get_client_stats(zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC);/* Persistent caching zval allocator */PHPAPI MYSQLND_ZVAL_PCACHE* mysqlnd_palloc_init_cache(unsigned int cache_size);MYSQLND_ZVAL_PCACHE* mysqlnd_palloc_get_cache_reference(MYSQLND_ZVAL_PCACHE * const cache);PHPAPI void			mysqlnd_palloc_free_cache_reference(MYSQLND_ZVAL_PCACHE **cache);PHPAPI void			mysqlnd_palloc_rinit(MYSQLND_ZVAL_PCACHE * const cache);PHPAPI void			mysqlnd_palloc_rshutdown(MYSQLND_ZVAL_PCACHE * const cache);PHPAPI void			mysqlnd_palloc_stats(const MYSQLND_ZVAL_PCACHE * const cache, zval *return_value);/* There two should not be used from outside */void *				mysqlnd_palloc_get_zval(MYSQLND_ZVAL_PCACHE * const cache, zend_bool *allocated);void				mysqlnd_palloc_zval_ptr_dtor(zval **zv, MYSQLND_ZVAL_PCACHE * const cache, zend_bool ps,												 zend_bool *copy_ctor_called TSRMLS_DC);/* ---------------------- QUERY CACHE ---------------*/struct st_mysqlnd_qcache {	HashTable		*ht;	unsigned int	references;#ifdef ZTS	MUTEX_T		LOCK_access;#endif};typedef struct st_mysqlnd_qcache_element {	MYSQLND_RES_BUFFERED *data;	MYSQLND_RES_METADATA *meta;	const char * query;	size_t	query_len;} MYSQLND_QCACHE_ELEMENT;PHPAPI MYSQLND_QCACHE *	mysqlnd_qcache_init_cache();PHPAPI MYSQLND_QCACHE *	mysqlnd_qcache_get_cache_reference(MYSQLND_QCACHE * const cache);PHPAPI void				mysqlnd_qcache_free_cache_reference(MYSQLND_QCACHE **cache);PHPAPI void				mysqlnd_qcache_stats(const MYSQLND_QCACHE * const cache, zval *return_value);MYSQLND_RES * 		mysqlnd_qcache_get(MYSQLND_QCACHE * const cache, const char * query,									   size_t query_len);void 				mysqlnd_qcache_put(MYSQLND_QCACHE * const cache, char * query, size_t query_len,									   MYSQLND_RES_BUFFERED * const result, MYSQLND_RES_METADATA * const meta);#endif	/* MYSQLND_H *//* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: noet sw=4 ts=4 fdm=marker * vim<600: noet sw=4 ts=4 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -