$ Wpdb द्वारा उत्पन्न त्रुटियों का पता लगाने-> get_results ()


9

$ Wpdb-> get_results () का उपयोग करते समय मैं त्रुटियों का पता कैसे लगा सकता हूं?

उदाहरण के लिए:

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");

पूर्ववर्ती कोड कोई अपवाद या त्रुटि उत्पन्न नहीं करता है; यह बस एक खाली सरणी में $ परिणाम सेट करता है। हम get_results () द्वारा उत्पन्न त्रुटियों का विश्वसनीय रूप से कैसे पता लगा सकते हैं?

जवाबों:


7

एक वर्ग चर है जो अंतिम त्रुटि स्ट्रिंग को संग्रहीत करता है - $ wpdb-> last_error। जिस तरह से $ wpdb को कोड किया जाता है, यदि क्वेरी सफल होती है, तो $ wpdb-> last_error एक खाली स्ट्रिंग होगा, यदि यह विफल हो जाता है, तो यह MySQL द्वारा लौटाया गया स्ट्रिंग स्ट्रिंग होगा। तो कुछ इस तरह से करेंगे ट्रिक।

$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
if ($wpdb->last_error) {
  echo 'You done bad! ' . $wpdb->last_error;
}

उचित लगता है - मैं अभी इस पर गौर नहीं कर सकता, लेकिन अगर यह काम करता है, तो यह भविष्य में काम आएगा! धन्यवाद! :)
rinogo

बाद में काम पर वापस आ गया - महान काम करता है! मैंने इस कोड को एक फ़ंक्शन में रखा है; मैंने आपका जवाब अपडेट किया; मुझे आशा है कि आप बुरा नहीं मानेंगे!
रिनोगो

1

सबसे अच्छा मैं पा सकता हूँ:

$wpdb->show_errors();
$result = $wpdb->get_results("SELECT * FROM this is not a valid query");
$wpdb->hide_errors();

दुर्भाग्य से, यह मुश्किल से समस्या को हल करता है। मैं त्रुटि को प्रोग्रामेटिक रूप से हैंडल करना चाहता हूं, न कि इसे केवल आउटपुट स्ट्रीम पर इको करें।


मुझे लगता है कि मैं हमेशा आउटपुट बफर को इंटरसेप्ट करने के साथ कुछ बुरा कर सकता था ...: /
rinogo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.