关于C++读取mysql字段获取得到的类型:
因为最近在做mysql的方面的编程。 当然是简单的连接, 发送sql请求之类的。
用mysql_query(), mysql_store_result(), mysql_fetch_rows()函数,获得每一行的数据, 进而可以获取到每一个字段的值。
因为我们使用mysql_fetch_row(), 获取到的是MYSQL_ROW类型, 先看它的定义:
typedef char **
MYSQL_ROW;
/* 返回的每一行的值,全部用字符串来表示*/
typedef struct st_mysql_rows {
struct st_mysql_rows *next;
/* list of rows */
MYSQL_ROW data;
}
MYSQL_ROWS; //mysql的数据的链表节点。可见mysql的结果集是链表结构
而MYSQL_ROW是二维数组。
在打印它的时候, 我发现它有以下几种情况:
1. 字符串
这是很正常的数据。
2. NULL指针
这就要非常注意。 当你对一个NULL指针操作的时候, 那是很危险的。
3. ‘\0’
这也是需要注意的, 我开始将它打印的时候, 它什么都没有,而它的长度却为1. 开始让我很疑惑。后来才想到有可能是'\0'。