上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.2 mysql_unbuffered_query函数:向MySQL发送一条SQL查询,并不获取和缓存结果集
【功能说明】
该函数将向指定成功连接的MySQL服务器发送一条SQL执行语句。该函数发送执行的SQL语句后,并不自动获取和缓存得到的结果集。这样的作用是当执行发送的SQL语句后,获得了一个数据非常庞大的结果集时,就会节省很大的内存空间。由于该函数不自动获取和缓存数据,当得到结果集中的第一条数据时,就可以立即对结果集进行操作,而没有必要将整个SQL语句都执行完再操作。要想自动获取和缓存结果集数据,就使用函数mysql_query()来实现。
注:该函数不自动获取和缓存结果集是一个优点,但这也是有局限性的,该函数执行得到的结果集,不能使用在函数mysql_num_rows()和mysql_data_seek()上。还有一个弊端就是,当向MySQL服务器发送一条新的SQL语句之前,必须提取没有缓存的执行SQL语句返回的结果集。
【函数语法】
resource mysql_unbuffered_query(string query[,resource link_identifier])
其中,参数query是指定执行的SQL语句;可选参数link_identifier是指定成功连接MySQL服务器的连接标识符,当程序成功连接到多个MySQL服务器时,必须要指定该参数的值。该函数的返回值为resource。
【示例程序】下面使用本例函数不自动获取和缓存结果集的执行SQL语句。代码如下:
<?php //打开一个非持久的MySQL服务器的连接 $link = mysql_connect("localhost", "root", "123456")or die("connection error: ".mysql_error()); mysql_select_db("project",$link); //通过打开的连接选择数据库 $sql = "select * from language"; //书写SQL语句,查询数据表中的字段 $result = mysql_unbuffered_query($sql,$link); //不获取和缓存结果的执行一条SQL语句 echo $result; //输出返回的结果 mysql_close($link); //关闭打开的连接 ?>
以上代码的运行结果如图1.6所示。
图1.6 运行结果
上述代码中,成功连接了指定的MySQL服务器之后,使用了代码语句$result = mysql_unbuffered_query($sql,$link);在连接成功的通道上,不自动获取和缓存结果集的执行了一条SQL语句$sql。该函数返回的数据变量$result是资源型数据,返回的值是Resource id #3。