|
对与每个非--SELECT查询(例如,INSERT、UPDATE、DELETE等),你可以调用sql/Index.html'>mysql_affected_rows()知道有多少行受到影响(改变)。 对于SELECT查询,你作为一个结果集合来检索选择的行。(注意一些语句是类SELECT的,他们返回行。这些包括SHOW、DESCRIBE和EXPLAIN。他们应该象SELECT语句相同的方式来对待。) 对客户,有两种方法处理结果集合。一种方法是通过调用sql/Index.html'>mysql_store_result()立刻检索全部结果。该函数从服务器获得查询返回的所有行,并将他们存储在客户端。第二种方法是对客户通过调用sql/Index.html'>mysql_use_result()初始化一个一行一行地结果集合的检索。该函数初始化检索,但是实际上不从服务器获得任何行。 在两种情况中,你通过sql/Index.html'>mysql_fetch_row()存取行。用sql/Index.html'>mysql_store_result()、sql/Index.html'>mysql_fetch_row()储存取已经从服务器被取出的行。用sql/Index.html'>mysql_use_result()、sql/Index.html'>mysql_fetch_row()实际上从服务器检索行。调用sql/Index.html'>mysql_fetch_lengths()可获得关于每行中数据值尺寸的信息。 在你用完一个结果集合以后,调用sql/Index.html'>mysql_free_result()释放由它使用的内存。 两种检索机制是互补的。客户程序应该选择最适合他们的要求的途径。在实践中,客户通常更愿意使用sql/Index.html'>mysql_store_result()。 sql/Index.html'>mysql_store_result()的一个优点是既然行均被客户取到,你不仅能顺序存取行,你也能sql/Index.html'>mysql_data_seek()或sql/Index.html'>mysql_row_seek()在结果集合中前后移动以改变在结果集合中的当前行位置。你也能通过调用sql/Index.html'>mysql_num_rows()知道有多少行。另一方面,sql/Index.html'>mysql_store_result()的内存需求对较大结果集合可能很高,并且你最可能遇到out-of-memory情况。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] 下一页
|