PHP mysql_unbuffered_query() 函數(shù)
定義和用法
mysql_unbuffered_query() 函數(shù)向 MySQL 發(fā)送一條 SQL 查詢(不獲取 / 緩存結(jié)果)。
語法
mysql_unbuffered_query(query,connection)
參數(shù) | 描述 |
---|---|
query | 必需。規(guī)定要發(fā)送的 SQL 查詢。注釋:查詢字符串不應(yīng)以分號(hào)結(jié)束。 |
connection | 可選。規(guī)定 SQL 連接標(biāo)識(shí)符。如果未規(guī)定,則使用上一個(gè)打開的連接。 |
說明
mysql_unbuffered_query() 向 MySQL 發(fā)送一條 SQL 查詢 query ,但不像 mysql_query() 那樣自動(dòng)獲取并緩存結(jié)果集。一方面,這在處理很大的結(jié)果集時(shí)會(huì)節(jié)省可觀的內(nèi)存。另一方面,可以在獲取第一行后立即對(duì)結(jié)果集進(jìn)行操作,而不用等到整個(gè) SQL 語句都執(zhí)行完畢。
當(dāng)使用多個(gè)數(shù)據(jù)庫連接時(shí),必須指定可選參數(shù) connection。
提示和注釋
注釋:mysql_unbuffered_query() 的好處是有代價(jià)的:在 mysql_unbuffered_query() 返回的結(jié)果集之上不能使用 mysql_num_rows() 和 mysql_data_seek()。此外在向 MySQL 發(fā)送一條新的 SQL 查詢之前,必須提取所有未緩存的 SQL 查詢所產(chǎn)生的結(jié)果行。
例子
<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
// 大型查詢
$sql = "SELECT * FROM Person";
mysql_unbuffered_query($sql,$con);
// 開始處理數(shù)據(jù)...
mysql_close($con);
?>