- 脑动力:PHP函数速查效率手册
- 张建辉 叶刚编著
- 559字
- 2020-08-28 05:08:42
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所示。
![](https://epubservercos.yuewen.com/0C7F36/3590311803937101/epubprivate/OEBPS/Images/figure_0057_0001.jpg?sign=1738852631-oD9AZEta50MiDTonvJB2PTurVrVwfvVS-0-33dd78cca20936890a04b181e8e82dcc)
图1.6 运行结果
上述代码中,成功连接了指定的MySQL服务器之后,使用了代码语句$result = mysql_unbuffered_query($sql,$link);在连接成功的通道上,不自动获取和缓存结果集的执行了一条SQL语句$sql。该函数返回的数据变量$result是资源型数据,返回的值是Resource id #3。