Current Location: Home> Latest Articles>

gitbox 2025-06-13

mysql_unbuffered_query 函数

适用 PHP 版本

该函数适用于 PHP 版本 4.x 到 5.x。请注意,在 PHP 5.5.0 之后,MySQL 扩展被标记为过时,并且在 PHP 7.0.0 中被完全移除。建议使用 MySQLi 或 PDO 来替代。

函数说明

mysql_unbuffered_query 函数用于执行一个不缓存查询的 MySQL 查询。在默认情况下,MySQL 查询会缓存查询结果并将其保留在内存中,而使用此函数时查询结果将不会被缓存在内存中,这在某些场景下(例如执行大量数据的查询)可以提高性能。

函数语法

mysql_unbuffered_query(query, link_identifier)

参数

  • query (string): 要执行的 SQL 查询语句。
  • link_identifier (resource) [可选]: 一个有效的 MySQL 连接标识符。如果未提供,mysql_unbuffered_query 将使用当前的默认连接。

返回值

成功时,返回一个 MySQL 查询结果资源;失败时,返回 false。

示例

假设你需要从数据库中查询大量的数据,并且不需要立即获取查询结果,可以使用此函数来执行查询并在稍后的某个时间点获取结果。

示例代码的说明

以下代码展示了如何使用 mysql_unbuffered_query 来执行一个不缓存的查询,并通过 mysql_fetch_assoc 获取查询结果。

示例代码:

<?php
// 建立 MySQL 连接
$link = mysql_connect("localhost", "username", "password");
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
<p>// 选择数据库<br>
mysql_select_db("my_database", $link);</p>
<p>// 执行不缓存的查询<br>
$query = "SELECT id, name FROM users LIMIT 1000";<br>
$result = mysql_unbuffered_query($query, $link);</p>
<p>// 处理查询结果<br>
while ($row = mysql_fetch_assoc($result)) {<br>
echo "ID: " . $row['id'] . " Name: " . $row['name'] . "<br>";<br>
}</p>
<p>// 关闭连接<br>
mysql_close($link);<br>
?><br>

代码说明:

  • 首先,我们连接到 MySQL 数据库,并选择一个数据库。
  • 使用 mysql_unbuffered_query 执行查询,这样查询结果不会被缓存在内存中。
  • 通过 mysql_fetch_assoc 遍历结果集,并输出每一行的 ID 和 Name。
  • 查询执行完毕后,关闭数据库连接。