WEB开发网
开发学院数据库MySQL Mysql入门系列:如何处理MYSQL查询 阅读

Mysql入门系列:如何处理MYSQL查询

 2006-12-31 10:51:22 来源:WEB开发网   
核心提示: process_result_set() 的这个版本是打印列值要求条件最低的方法,每种方法都有一定的缺点,Mysql入门系列:如何处理MYSQL查询(6),例如假设执行下面的查询:我们可以通过提供一些信息如列标签,及通过使这些值垂直排列,用MySQLC API 可编写一个能很好地处理任何类

process_result_set() 的这个版本是打印列值要求条件最低的方法,每种方法都有一定的缺点,例如假设执行下面的查询:

我们可以通过提供一些信息如列标签,及通过使这些值垂直排列,而使输出结果漂亮一点。为此,我们需要标签和每列所需的最宽的值。这个信息是有效的,但不是列数据值的一部分,而是结果集的元数据的一部分(有关数据的数据)。简单归纳了一下查询处理程序后,我们将在6 . 6 . 6节“使用结果集元数据”中给出较漂亮的显示格式。

打印二进制数据

对包含可能含有空字节的二进制数据的列值,使用‘ % s’printf() 格式标识符不能将它正确地打印; printf() 希望一个空终结串,并且直到第一个空字节才打印列值。对于二进制数据,最好用列的长度,以便打印完整的值,如可以用fwrite() 或putc( )。

6.6.3 通用目标查询处理程序

前面介绍的处理查询样例应用了语句是否应该返回一些数据的知识来编写的。这是可能的,因为查询固定在代码内部:使用INSERT 语句时,它不返回结果,使用SHOW TABLES语句时,才返回结果。

然而,不可能始终知道查询用的是哪一种语句,例如,如果执行一个从键盘键入或来源于文件的查询,则它可能是任何的语句。不可能提前知道它是否会返回行。当然不想对查询做语法分析来决定它是哪类语句,总之,并不像看上去那样简单。只看第一个单词是不够的,因为查询也可能以注释语句开始,例如:

/* comment * / SELECT

幸运的是不必过早地知道查询类型就能够正确地处理它。用MySQLC API 可编写一个能很好地处理任何类型语句的通用目标查询处理程序,无论它是否会返回结果。在编写查询处理程序的代码之前,让我们简述一下它是如何工作的:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接