这篇文章主要介绍了关于对pdo结构体的梳理代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下typedef struct {
pdo_mysql_db_handle *H;
MYSQL_RES *result;
const MYSQL_FIELD *fields;
MYSQL_ROW current_data;
#if PDO_USE_MYSQLND
const size_t *current_lengths;
#else
zend_long *current_lengths;
#endif
pdo_mysql_error_info einfo;
#if PDO_USE_MYSQLND
MYSQLND_STMT *stmt; //st_mysqlnd_stmt
#else
MYSQL_STMT *stmt;
#endif
int num_params;
PDO_MYSQL_PARAM_BIND *params;
#ifndef PDO_USE_MYSQLND
my_bool *in_null;
zend_ulong *in_length;
#endif
PDO_MYSQL_PARAM_BIND *bound_result;
my_bool *out_null;
zend_ulong *out_length;
unsigned int params_given;
unsigned max_length:1;
} pdo_mysql_stmt;
struct st_mysqlnd_stmt
{
MYSQLND_STMT_DATA * data;///st_mysqlnd_stmt_data
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_stmt) * m;
zend_bool persistent;
};
struct st_mysqlnd_res
{
MYSQLND_CONN_DATA *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 *stored_data;
MYSQLND_RES_UNBUFFERED *unbuf;
zend_bool persistent;
MYSQLND_CLASS_METHODS_TYPE(mysqlnd_res) m;
};
struct st_mysqlnd_stmt_data
{
MYSQLND_CONN_DATA *conn;
MYSQLND_RES *result;
unsigned int field_count;
unsigned int param_count;
MYSQLND_CMD_BUFFER execute_cmd_buffer;
unsigned int execute_count;/* count how many times the stmt was executed */
};
struct _pdo_stmt_t {
/* driver specifics */
struct pdo_stmt_methods *methods;
void *driver_data;
/* if true, we've already successfully executed this statement at least
* once */
unsigned executed:1;
/* if true, the statement supports placeholders and can implement
* bindParam() for its prepared statements, if false, PDO should
* emulate prepare and bind on its behalf */
unsigned supports_placeholders:2;
unsigned _reserved:29;
/* the number of columns in the result set; not valid until after
* the statement has been executed at least once. In some cases, might
* not be valid until fetch (at the driver level) has been called at least once.
* */
int column_count;
struct pdo_column_data *columns;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐: