2013-03-12 13 views
7

यह सरल कोड दो MySQL प्रक्रियाओं को कॉल करता है, लेकिन पहले जो मान देता है, वह दूसरी क्वेरी पर एक त्रुटि देता है।PHP सिंक त्रुटि से बाहर संचार

नोट: पहले या दूसरे को चलाने पर प्रत्येक के लिए सही ढंग से वापस आ जाएगा। तो सवाल काम करते हैं, बस एक साथ नहीं।

पूर्ण त्रुटि है: Invalid query: Commands out of sync; you can't run this command now

कोई भी विचार करें।

<?php 

require_once ('connection.php'); 
//First Query and Output 

$result = mysql_query("CALL C01_Client_Summary_ByAccount(1, '2012-02-27', '2013-03-29');"); 
if (!$result) { 
die('Invalid query: ' . mysql_error()); 
} 
while($row=mysql_fetch_array($result)) 
{ 
echo $row['CommisionPercentage']; 
} 

mysql_free_result($result); 
//END First Query and Output 

//Second Query and Output 
$new2 = mysql_query("CALL C01_Client_Summary_ByBetType(1, '2012-02-27', '2013-03-29');"); 
if (!$new2) { 
die('Invalid query: ' . mysql_error()); 
} 
while($row=mysql_fetch_array($new2)) 
{ 
echo $row['Turnover']; 
} 
//END Second Query and Output 

?> 
+1

करता है अपने पहले 'कॉल()' कारण 2 resultsets: यहाँ यह कैसे करना है पर एक अच्छी मिसाल है? – Wrikken

+0

मुझे इस का समाधान मिला, मुझे में कनेक्शन बदलने की आवश्यकता है ('connection.php'); और फिर पहली क्वेरी के बाद कनेक्शन mysql_close ($ con) बंद कर दिया; और फिर दूसरी क्वेरी से पहले कनेक्शन को फिर से खोलें ('connection.php'); – user2162372

+0

देखें http://stackoverflow.com/q/614671/632951 – Pacerier

उत्तर

5

PHP के लिए पुराना MySQL एक्सटेंशन संग्रहित प्रक्रियाओं के साथ ठीक से काम नहीं कर रहा है। दुर्भाग्यवश वहां कई संग्रहीत प्रक्रियाओं को निष्पादित करने का कोई तरीका नहीं है। समस्या यह है कि पहली प्रक्रिया कुछ buffered परिणाम सेट छोड़ देता है जो दूसरे को विफल करने का कारण बनता है। हालांकि आप mysqli एक्सटेंशन का उपयोग कर सकते हैं।

http://www.daniweb.com/web-development/php/threads/234868/error-commands-out-of-sync-you-cant-run-this-command-now

+0

धन्यवाद - मैंने यह भी पाया - मेरा समाधान शायद धोखा – user2162372

+1

समाधान 'mysqli' या' PDO 'एक्सटेंशन पर स्विच करना है। ध्यान रखें कि पुराना 'mysql_xxX() 'फ़ंक्शंस बहिष्कृत और समर्थित नहीं है; एक दिन आपको अपने PHP संस्करण को अपग्रेड करना होगा, और यदि आपने स्विच नहीं किया है, तो आप पाएंगे कि आपका कोड बस काम नहीं करता है; ऐसा होने पर इसे ठीक करने के लिए यह एक वास्तविक दर्द होगा। अब करना आसान है जबकि यह करना आसान है। – Spudley

संबंधित मुद्दे