Небуферизованный запрос с MySQLi?

MySQLi запросы не буферизированы? Если нет, есть ли способ сделать небуферизованный запрос, как с не-MySQLi mysql_unbuffered_query()?

3 ответа

Решение

mysqli_real_query(), сопровождаемый mysqli_use_result()

MindStalker прав, но, возможно, самый простой способ - тот, который показан в руководстве по PHP
http://php.net/manual/en/mysqlinfo.concepts.buffering.php

Передав константу MYSQLI_USE_RESULT в качестве аргумента resultmode, вы можете установить mysqli_query для работы как 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();
?>

Меня устраивает

$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();
Другие вопросы по тегам