त्रुटियां दिखाएं:
$wpdb->show_errors = true
यदि स्वचालित रूप WP_DEBUG
से सेट किया गया है , तो त्रुटियों को दिखाता है true
।
$wpdb->suppress_errors = false
त्रुटियों को दबाने से रोकता है।
मल्टीसाइट को विशेष उपचार की आवश्यकता होती है
// Show errors in Multisite:
global $wpdb, $blog_id;
// There's no is_multisite(), so we need to check the ID
// This means, that we can't debug the blog with the ID 1 as MU-blog by default
// Check if we are on Blog ID#1 and if not, check the defines and add error handling
if ( 1 !== $blog_id )
! defined( 'DIEONDBERROR' ) AND define( 'DIEONDBERROR', true );
आउटपुट हैंडलिंग
$wpdb->update()
विधि तीन अलग अलग outputs है। इसके खिलाफ जाँच करने के लिए, आपको परिणाम ia var बचाना होगा $result = $wpdb->update( /* ... */ );
:।
उन परिदृश्यों को संभालें:
false === $result
: विफल
0 === $result
: सफलता, लेकिन कोई अद्यतन नहीं
0 < $result
: सफलता
कक्षा उत्पादन
$wpdb->last_error
यदि आपको एक मिला है, तो आपको अंतिम त्रुटि दिखाएगा।
$wpdb->last_query
अंतिम क्वेरी (जहां त्रुटि हुई) को दिखाने में आपकी सहायता करेगा। यह मूल रूप से के रूप में ही है array_pop( $wpbd->queries );
।
महत्वपूर्ण (सुरक्षा) नोट
कृपया इस कोड को लाइव साइट पर न जोड़ें। विशेष रूप से नहीं तो कैशिंग प्लगइन्स शामिल हैं। यह आगंतुकों के लिए महत्वपूर्ण डीबी-संबंधित डेटा को उजागर कर सकता है !
यदि आप अन्यथा नहीं कर सकते: हमेशा डिबग आउटपुट का सामना करने से रोकने के लिए अपने कोड को सशर्त बयानों में लपेटें!
// Example
function debug_query( $result, $data )
{
global $current_user;
get_currentuserinfo();
if ( current_user_can( 'manage_options' ) )
{
global $wpdb, $blog_id;
1 !== $blog_id
AND ! defined( 'DIEONDBERROR' )
AND define( 'DIEONDBERROR', true );
$wpdb->show_errors = true;
$wpdb->suppress_errors = false;
$output = '<pre style="white-space:pre-line;">';
$output .= 'Last Error: ';
$output .= var_export( $wpdb->last_error, true );
$output .= "\n\nLast Query: ";
$output .= var_export( $wpdb->last_query, true );
if ( false === $result )
{
$result = new WP_Error( 'query_failed', 'No update.', $data );
}
elseif ( 0 === $result )
{
$result = new WP_Error( 'update_failed', 'Updated zero rows.', $data );
}
elseif ( 0 < $result )
{
$result = 'Success';
}
$output .= '</pre>';
// Only abort, if we got an error
is_wp_error( $result )
AND exit( $output.$result->get_error_message() );
}
}
$wpdb
ऑब्जेक्ट एक्सपोज़ करने से आपका डेटाबेस उपयोगकर्ता नाम और पासवर्ड भी उजागर हो सकता है!