ত্রুটিগুলি দেখান:
$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()
পদ্ধতি তিনটি ভিন্ন আউটপুট হয়েছে। এটি বিরুদ্ধে পরীক্ষা করার জন্য, আপনি ফলাফল 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
বস্তুর এছাড়াও আপনার ডাটাবেস ব্যবহারকারী নাম এবং পাসওয়ার্ড এক্সপোজ পারে!