Le query MySQLi sono senza buffer? In caso contrario, c'è un modo per fare una query senza buffer, come con il non-MySQLi mysql_unbuffered_query()
?query non bufferizzata con MySQLi?
9
A
risposta
7
mysqli_real_query() seguito da mysqli_use_result()
+0
'mysqli_use_result' sembra essere proprio quello che sto cercando. Grazie! – ceejayoz
8
Mindstalker è giusto, ma forse il modo più semplice è quello indicato nel manuale di PHP
http://php.net/manual/en/mysqlinfo.concepts.buffering.php
Passando il MYSQLI_USE_RESULT costante come resultmode argomento, è può impostare mysqli_query a lavorare come 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
funziona per me
$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();
Si intende che la query non è memorizzata nel buffer o che il set di risposta non è bloccato? * Perché * unbuffered potrebbe essere vantaggioso? – wallyk
Il set di risposta. Per i documenti di 'mysql_unbuffered_query':" Ciò consente di risparmiare una notevole quantità di memoria con query SQL che generano set di risultati di grandi dimensioni, e puoi iniziare a lavorare sul set di risultati immediatamente dopo che la prima riga è stata recuperata poiché non devi aspettare fino a quando non è stata eseguita la query SQL completa. " – ceejayoz
Ah! Molto bene. Immagino di non aver mai affrontato lo spostamento di molti dati attraverso una connessione MySQL. – wallyk