70期30连码:Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in 解决办法

连码四七靠三活猜生肖 www.dvwa8.cn 我一个子网站今天访问的时候报一个这样的错误:

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /fujieace/nginx/html/wp-includes/wp-db.php on line 3102

中文翻译

警告:mysqli_num_fields()期望参数1是mysqli_result,在3102行的/fujieace/nginx/html/wp-includes/wp-db.php中给出的布尔值

mysqli_num_fields

大家都知道我的博客是wordpress程序做的,当然了,wordpress也是PHP程序所开发,因此我说的解决办法不仅仅是针对wordpress,如果你有其它的PHP程序也报这个错误,思路是一样的;

 

解决办法:

我一再强调,既然报错给了一个路径“/fujieace/nginxssl/html/wp-includes/wp-db.php on line 3102”,我们只需要查看3102行的代码是怎么样的?

 

1、登陆你的服务器(拿我的linux服务器举例);

 

2、vim?/fujieace/nginxssl/html/wp-includes/wp-db.php;

Esc:切换到命令模式下;

然后输入“:3102”回车;

我们可以仔细的看出,wp-db.php有以下这段代码:

3092         /**
3093          * Load the column metadata from the last query.
3094          *
3095          * @since 3.5.0
3096          *
3097          * @access protected
3098          */
3099         protected function load_col_info() {
3100                 if ( $this->col_info )
3101                         return;
3102 
3103                 if ( $this->use_mysqli ) {
3104                         $num_fields = mysqli_num_fields( $this->result );
3105                         for ( $i = 0; $i < $num_fields; $i++ ) {
3106                                 $this->col_info[ $i ] = mysqli_fetch_field( $this->result );
3107                         }
3108                 } else {
3109                         $num_fields = mysql_num_fields( $this->result );
3110                         for ( $i = 0; $i < $num_fields; $i++ ) {
3111                                 $this->col_info[ $i ] = mysql_fetch_field( $this->result, $i );
3112                         }
3113                 }
3114         }

如果你不懂这段代码什么意思?也没有关系,由于是wordpress程序,它是有注释的;

注释的大概意思是:

/ **

*从上次查询中加载列元数据。

*

*从3.5.0开始

*

* @access?;?/p>

* /

由于我的子网站做了缓存设置,我猜测它可能是从上次查询中加载数据加载不出来了,所以才报了这个错误;因此我清理了子网站所有的缓存,然后就没有报这个错误了;

 

3、如果我的网站不是wordpress做的?PHP程序也没有做缓存呢?又如何解决?

其实,解决方法也很简单;

错误不是提示“Warning.....”,php是可以屏蔽掉Warning对吗?只要程序不报error就可以了对吧!

 

只需要去php.ini做设置即可!

注意几个选项 display_errors 、 error_reporting?和 log_errors;

如果你的项目已经调试OK!正常上线了,建议做如下设置:

display_errors = Off

 

error_reporting = E_ALL&?E_DEPRECATED&?E_STRICT

 

log_errors=On

log_errors_max_len = 1024

error_log = /fujieace/php/var/php-error.log

    A+
发布日期:2018年01月14日  所属分类:PHP  Wordpress
最后修改时间:2018-01-16 15:29
评分: (2 票;平均数5.00 ;最高评分 5 ;用户总数2;总得分 10;百分比100.00)
付杰
wordpress discux dedecms 帝国 phpcms等快速建站服务
wordpress discux dedecms 帝国 phpcms等快速建站服务
  • ¥ 99.9元
  • 市场价:499.9元
wordpress站群服务 泛解析二级域名站群 二级目录站群
wordpress站群服务 泛解析二级域名站群 二级目录站群
  • ¥ 1999.9元
  • 市场价:4800元
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: