2009-12-30 16 views
9

क्या MySQLi क्वेरी unbuffered हैं? यदि नहीं, तो गैर-MySQLi mysql_unbuffered_query() के साथ एक unbuffered क्वेरी करने का कोई तरीका है?MySQLi के साथ unbuffered क्वेरी?

+0

क्या आपका मतलब है कि क्वेरी buffered नहीं है, या प्रतिक्रिया सेट unbuffered है? * क्यों * unbuffered लाभदायक होगा? – wallyk

+2

प्रतिक्रिया सेट। 'Mysql_unbuffered_query' के लिए दस्तावेज़ों के अनुसार:" यह SQL क्वेरी के साथ काफी मात्रा में स्मृति बचाता है जो बड़े परिणाम सेट उत्पन्न करता है, और आप पहली पंक्ति को पुनर्प्राप्त करने के तुरंत बाद परिणाम सेट पर काम करना शुरू कर सकते हैं क्योंकि आपको प्रतीक्षा नहीं करना है जब तक पूर्ण SQL क्वेरी नहीं की जाती है। " – ceejayoz

+0

आह! बहुत अच्छा। मुझे लगता है कि मैंने कभी भी MYSQL कनेक्शन के माध्यम से बहुत सारे डेटा को स्थानांतरित करने का सामना नहीं किया है। – wallyk

उत्तर

7

mysqli_real_query() mysqli_use_result()

+0

'mysqli_use_result' बस वही है जो मैं ढूंढ रहा हूं। धन्यवाद! – ceejayoz

8

MindStalker सही है लेकिन शायद सबसे आसान तरीका है, पीएचपी मैनुअल
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(); 
?> 
-2

यह मेरे लिए काम करता है

$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(); 
संबंधित मुद्दे