Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मैं कैसे डिबग कर सकता हूं कि सरलतम MySQL क्वेरी झूठी क्यों लौटाती है?

एक अनिवार्य अपडेट :जैसा कि mysql ext अब और नहीं है, यहां दो शेष MySQL API के उत्तर दिए गए हैं जो मैंने अपनी साइट पर स्टैक ओवरफ़्लो पर 1000s प्रश्नों के उत्तर देने के अनुभव के आधार पर लिखे हैं:

संक्षेप में, mysqi के लिए निम्न पंक्ति को mysqli_connect() . से पहले जोड़ना होगा कॉल करें:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

जबकि पीडीओ के लिए उचित त्रुटि मोड सेट करना होगा, उदाहरण के लिए

$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

पुराने mysql एक्सटेंशन के अनुसार,

mysql_query() से त्रुटि प्राप्त करने के लिए आपको 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);

उत्पादन सर्वर पर, हालांकि, पहली पंक्ति के मान को 1 से 0 में बदला जाना चाहिए



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यूटीएफ समकक्षों के साथ MySQL स्थानापन्न html विशेष वर्ण

  2. MySQL में utf8mb4 और utf8 चारसेट में क्या अंतर है?

  3. Mysql - Mysql2 ::त्रुटि:गलत स्ट्रिंग मान:

  4. जेपीए MySQL डेटाबेस में गलत तारीख सहेज रहा है

  5. MySQL:रिकॉर्ड के बीच औसत अंतराल