2009-12-30 16 views
9

Sind MySQLi-Abfragen ungepuffert? Wenn nicht, gibt es eine Möglichkeit, eine ungepufferte Abfrage zu machen, wie bei der nicht-MySQLi mysql_unbuffered_query()?ungepufferte Abfrage mit MySQLi?

+0

Meinst du, dass die Abfrage nicht gepuffert ist, oder dass die Antwortgruppe ungepuffert ist? * Warum * wäre ungepuffert vorteilhaft? – wallyk

+2

Die Antwort festgelegt. Laut der Dokumentation für mysql_unbuffered_query: "Dies spart viel Speicherplatz mit SQL-Abfragen, die große Ergebnismengen produzieren, und Sie können sofort nach dem Abruf der ersten Zeile mit der Ergebnismenge arbeiten, da Sie nicht warten müssen bis die vollständige SQL-Abfrage durchgeführt wurde. " – ceejayoz

+0

Ah! Sehr gut. Ich denke, ich habe noch nie versucht, viele Daten über eine MYSQL-Verbindung zu übertragen. – wallyk

Antwort

7

mysqli_real_query(), gefolgt von mysqli_use_result()

+0

'mysqli_use_result' scheint genau das zu sein, wonach ich suche. Vielen Dank! – ceejayoz

8

MindStalker richtig ist aber vielleicht der einfachste Weg ist die in dem PHP-Handbuch gezeigt
http://php.net/manual/en/mysqlinfo.concepts.buffering.php

Vorbei an der MYSQLI_USE_RESULT Konstante als resultmode Argument, Sie als mysql_unbuffered_query

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT); 

if ($uresult) { 
    while ($row = $uresult->fetch_assoc()) { 
     echo $row['Name'] . PHP_EOL; 
    } 
} 
$uresult->close(); 
?> 
-2

es für mich kann mysqli_query an die Arbeit funktioniert

$uresult = $mysqli_new->query("INSERT INTO world (username, userid, points, price, br, admin) 
VALUES ('$word[username]',$word[userid], $points, 0, 0, '$word[adminname]')", MYSQLI_USE_RESULT); 
$uresult = $mysqli_new->query("SELECT username FROM world WHERE userid='$word[userid]'", MYSQLI_USE_RESULT); 
if ($uresult) 
{ 
    while ($row = $uresult->fetch_assoc()) 
    { 
     echo "uresult: ".$row['username'] . PHP_EOL; 
    } 
} 
$uresult->close();