十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要讲解了“MySQL数据库操作结果的数据结构”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库操作结果的数据结构”吧!
目前创新互联已为上1000家的企业提供了网站建设、域名、网页空间、网站托管、服务器租用、企业网站设计、寒亭网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
一、数据库操作结果数据结构
struct zbx_db_result
{
#if defined(HAVE_IBM_DB2)
SQLHANDLE hstmt;
SQLSMALLINT nalloc;
SQLSMALLINT ncolumn;
DB_ROW values;
DB_ROW values_cli;
SQLINTEGER *values_len;
#elif defined(HAVE_MYSQL)
MYSQL_RES *result;
#elif defined(HAVE_ORACLE)
OCIStmt *stmthp; /* the statement handle for select operations */
int ncolumn;
DB_ROW values;
ub4 *values_alloc;
OCILobLocator **clobs;
#elif defined(HAVE_POSTGRESQL)
PGresult *pg_result;
int row_num;
int fld_num;
int cursor;
DB_ROW values;
#elif defined(HAVE_SQLITE3)
int curow;
char **data;
int nrow;
int ncolumn;
DB_ROW values;
#endif
};
二、数据库根据sql查询
/******************************************************************************
* *
* Function: DBselect *
* *
* Purpose: execute a select statement *
* *
* Comments: retry until DB is up *
* *
******************************************************************************/
DB_RESULT __zbx_DBselect(const char *fmt, ...)
{
va_list args; //参数列表
DB_RESULT rc;
va_start(args, fmt);
rc = zbx_db_vselect(fmt, args);
while ((DB_RESULT)ZBX_DB_DOWN == rc)
{
DBclose();
DBconnect(ZBX_DB_CONNECT_NORMAL);
if ((DB_RESULT)ZBX_DB_DOWN == (rc = zbx_db_vselect(fmt, args)))
{
zabbix_log(LOG_LEVEL_ERR, "database is down: retrying in %d seconds", ZBX_DB_WAIT_DOWN);
connection_failure = 1;
sleep(ZBX_DB_WAIT_DOWN);
}
}
va_end(args);
return rc;
}
三、MySQL操作结果数据结构
typedef struct st_mysql_res {
my_ulonglong row_count;
MYSQL_FIELD *fields;
MYSQL_DATA *data;
MYSQL_ROWS *data_cursor;
unsigned long *lengths; /* column lengths of current row */
MYSQL *handle; /* for unbuffered reads */
const struct st_mysql_methods *methods;
MYSQL_ROW row; /* If unbuffered read */
MYSQL_ROW current_row; /* buffer to current row */
MEM_ROOT field_alloc;
unsigned int field_count, current_field;
my_bool eof; /* Used by mysql_fetch_row */
/* mysql_stmt_close() had to cancel this result */
my_bool unbuffered_fetch_cancelled;
void *extension;
} MYSQL_RES;
感谢各位的阅读,以上就是“MySQL数据库操作结果的数据结构”的内容了,经过本文的学习后,相信大家对MySQL数据库操作结果的数据结构这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!