2009-12-11 80 views

回答

0

不幸的是,PHP pgsql擴展或pdo_pgsql擴展沒有無緩衝模式。蓬勃發展具有用於fDatabase一個unbufferedQuery()方法,但對於PostgreSQL數據庫,它使用擴展的正常查詢功能。

2

就我所看到的,我可以看出,在PHP上沒有使用pgsql驅動程序的無緩衝查詢。但是,下面的代碼可以幫你解決這個問題:

$curSql = "DECLARE cursor1 CURSOR FOR SELECT * FROM big_table"; 
$con = new PDO("pgsql:host=whatever dbname=whatever", "user", "pass"); 
$con->beginTransaction(); // cursors require a transaction. 
$stmt = $con->prepare($curSql); 
$stmt->execute(); 

$innerStatement = $con->prepare("FETCH 1 FROM cursor1"); 

while($innerStatement->execute() && $row = $innerStatement->fetch(PDO::FETCH_ASSOC)) { 
    echo $row['field']; 
} 

來源:http://codepoets.co.uk/2014/postgresql-unbuffered-queries/#more-936