2012-03-08 8 views
5

मैं xampp के साथ काम करता हूं। मैं MySQL कनेक्शन प्रदर्शन किया:मैं डीबग कैसे कर सकता हूं कि सबसे आसान MySQL क्वेरी झूठी क्यों लौटती है?

$connection = mysql_connect($host , $user , $passw); 
mysql_select_db($db, $connection); 

मैं गूंज कमांड के साथ उत्पादन प्राप्त (द्वारा बूलियन जाँच लौटे मान) कि कनेक्शन स्थापित हो जाने और डेटाबेस $ db पाया जाता है।

लेकिन जैसे सरल प्रश्न:

$query = mysql_query("SELECT * FROM 'users'"); 

रिटर्न झूठी। मैं क्यों डीबग कर सकता हूं? धन्यवाद।

+0

आप का प्रयास किया था '1' चयन

यहाँ कुछ अधिक जानकारी है? – ashes999

+1

क्या आपने phpmyadmin या डेटाबेस में क्वेरी चलाने का प्रयास किया है जिसका आप उपयोग कर रहे हैं? – Milap

+0

@ ashes999 एक विचार के लिए धन्यवाद। मैंने अभी यह कोशिश की और अभी भी मुझे $ query = false वापसी मिलती है। अभी भी 'mysql_query' का उपयोग करने के लिए –

उत्तर

11

mysql से कोई त्रुटि प्राप्त करने के लिए आपको mysql_error() फ़ंक्शन का उपयोग करना होगा।
तो, हमेशा आपके सभी प्रश्नों इस तरह से चलाने के लिए, कम से कम जब तक आप और अधिक उन्नत क्वेरी हैंडलर का विकास:

$query = "SELECT * FROM 'users'"; 
$result = mysql_query($query) or trigger_error(mysql_error()." ".$query); 

अपने वर्तमान क्वेरी के साथ समस्या यह 'users' हिस्सा है।

SELECT * FROM `users` 

वहाँ कनेक्शन के साथ एक समस्या हो सकती है: एकल उद्धरण जबकि पहचानकर्ता के लिए आप बैकटिक उपयोग करने के लिए तार परिसीमित करने के लिए प्रयोग की जाने वाली है।
अपने कोड के शीर्ष पर इन पंक्तियों को जोड़ने के सुनिश्चित करें कि आप देख सकते हैं कि हर त्रुटि हुई

ini_set('display_errors',1); 
error_reporting(E_ALL); 
+0

यह बहुत अच्छा है। यह मुझे त्रुटियां देता है। अब मैं देखता हूं कि डेटाबेस का चयन नहीं किया गया है। यह बिल्कुल सही आदेश है जिसे मैंने देखा था। धन्यवाद! –

4

mysql_error() फ़ंक्शन का उपयोग होने के लिए:

$query = mysql_query("SELECT * FROM 'users'") or die(mysql_error()); 

संपादित करें: प्रति कर्नल छर्रों की टिप्पणी: आप परीक्षण वातावरण के बाहर मरने() का कभी भी उपयोग नहीं करना चाहिए। आम तौर पर यह कोड लिखते समय खराब अभ्यास होता है जो उत्पादन के लिए भी इरादा है। http://www.phpfreaks.com/blog/or-die-must-die

+0

मरने का उपयोग कभी नहीं करें()। यह बेहद बुरा अभ्यास है। –

+0

एक उत्पादन वातावरण में मैं पूरी तरह से सहमत हूं, लेकिन यह एक परीक्षण वातावरण स्पष्ट है। फिर भी, टिप्पणी के लिए धन्यवाद और मैं इसे जवाब में स्पष्ट कर दूंगा। – Ynhockey

+1

आप विकास और उत्पादन पर विभिन्न कोड का उपयोग कर रहे हैं? वास्तव में तुम हो? –

0

Your Common Sense जवाब इसके आधार पर एक वस्तु उन्मुख है शैली:

$query = "SELECT * FROM 'users'"; 
$result = $mysqli -> query($query) or trigger_error($mysqli -> error." ".$query); 
संबंधित मुद्दे