Mysql入门系列:如何处理MYSQL查询
2006-12-31 10:51:22 来源:WEB开发网■ MYSQL_ROW 是一个指针类型,因此,必须声明类型变量为MYSQL_ROW row,而不是MYSQL_ROW *row。
■ MYSQL_ROW 数组中的字符串是空终结的。但是,列可能含有二进制数据,这样,数据中就可能含有空字节,因此,不应该把值看成是空终结的。由列的长度可知列值有多长。
■ 所有数据类型的值都是作为字符串返回的,即使是数字型的也是如此。如果需要该值为数字型,就必须自己对该字符串进行转换。
■ 在MYSQL_ROW 数组中,NULL 指针代表NULL,除非声明列为NOT NULL,否则应该经常检查列值是否为NULL 指针。
应用程序可以利用每行的内容做任何想做的事,为了举例说明这一点,我们只打印由制表符隔开列值的行,为此还需要另外一个函数, mysql_num_fields() ,它来自于客户机库;这个函数告知我们该行包括多少个值(列)。
下面就是process_result_set() 的代码:
process_result_set() 以制表符分隔的形式打印每一行(将NULL值显示为单词“NULL”),它跟在被检索的行计数的后面, 该计数通过调用mysql_num_rows() 来计算。像mysql_ affected_rows() 一样,mysql_num_rows() 返回my_ulonglong 值,因此,将值转换为
unsigned long 型,并用‘% l u’ 格式打印。
提取行的循环紧接在一个错误检验的后面,如果要用mysql_store_result() 创建结果集,
mysql_fetch_row() 返回的NULL值通常意味着“不再有行”。然而,如果用mysql_ use _ result( )创建结果集,则mysql_fetch_row() 返回的NULL 值通常意味着“不再有行”或者发生了错误。无论怎样创建结果集,这个测试只允许process_result_set() 检测错误。
更多精彩
赞助商链接