好物优选点击查看详情 京东购买

暂无内容

Joomla教程菜鸟教程显示$wpdb更新错误

显示错误:

  • $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 对象也可能暴露你的数据库用户名和密码!

原文链接:https://www.wordpresshy.com/358797

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享