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

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

 2006-12-31 10:51:22 来源:WEB开发网   
核心提示: 请注意在打印时mysql_ a ffected_rows() 的结果是如何转换为unsigned long 类型的,这个函数返回一个my_ulonglong 类型的值,Mysql入门系列:如何处理MYSQL查询(3),但在一些系统上无法直接打印这个类型的值(例如,笔者观察到它可在FreeB

请注意在打印时mysql_ a ffected_rows() 的结果是如何转换为unsigned long 类型的,这个函数返回一个my_ulonglong 类型的值,但在一些系统上无法直接打印这个类型的值(例如,笔者观察到它可在FreeBSD 下工作,但不能在Solaris 下工作)。把值转换为unsigned long 类型并使用‘% l u’打印格式可以解决这个问题。同样也要考虑返回my_ulonglong 值的其他函数,如mysql_num_rows() 和mysql_ insert _ id ( )。如果想使客户机程序能跨系统地移植,就要谨记这一点。

mysql_ rows _ affected() 返回查询所作用的行数,但是“受作用的行”的含义取决于查询的类型。对于INSERT、DELETE 和UPDATE,是指插入、删除或者更新的行数,也就是MySQL实际修改的行数。如果行的内容与所要更新的内容相同,则MySQL就不再更新行。这就是说虽然可能选择行来更新(通过UPDATE 语句的WHERE 子句),但实际上该行可能并未改变。

对于UPDATE,“受作用的行”的意义实际上是个争论点,因为人们想把它当成“被匹配的行”—即选择要更新的行数,即使更新操作实际上并未改变其中的值也是如此。如果应用程序需要这个信息, 则当与服务器连接时可以用它来请求以实现这个功能。将CLIENT_FOUND_ROWS 的flags 值传递给mysql_ real _ connect( )。也可以将CLIENT _ FOUND _ROWS 作为flags 参数传递给do _ connect ( );它将把值传递给mysql_ real _ connect( )。

6.6.2 处理返回结果集的查询

通过调用mysql_query() 和mysql_real_query() 发布查询之后,返回数据的查询以结果集形式进行。在MySQL中实现它非常重要, SELECT 不是返回行的唯一语句, SHOW、DESCRIBE 和EXPLAIN 都需要返回行。对所有这些语句,都必须在发布查询后执行另外的处理行操作。

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

Tags:Mysql 入门 系列

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