【问题标题】:Wordpress Database Fatal ErrorWordpress 数据库致命错误
【发布时间】:2009-12-11 15:52:50
【问题描述】:

我在尝试针对我的 WordPress 数据库运行 PHP 脚本时收到此错误:

Fatal error: Cannot redeclare class wpdb

谁能帮我解决这个问题?


编辑

代码:

require_once(dirname(__FILE__) . '/../../wp-config.php'); 
require_once(dirname(__FILE__) . '/../../wp-includes/wp-db.php'); 
$wpdb->show_errors(); 
$dupes = $wpdb->get_results('select bad_rows.* from wp_posts as bad_rows inner join ( select post_title, MIN(id) as min_id from wp_posts group by post_title having count(*) > 1 ) as good_rows on good_rows.post_title = bad_rows.post_title and good_rows.min_id <> bad_rows.id; '); 

foreach ($dupes as $dupe) 
{ 
  echo $dupe->post_title ."\n"; 
}

$wpdb->query(' delete bad_rows.* from wp_posts as bad_rows inner join ( select post_title, MIN(id) as min_id from wp_posts group by post_title having count(*) > 1 ) as good_rows on good_rows.post_title = bad_rows.post_title and good_rows.min_id <> bad_rows.id; ');

【问题讨论】:

  • 我添加了您留下的代码以响应其中一个答案。我尽我所能对其进行格式化,但有些内容可能在翻译中丢失了。

标签: php database wordpress


【解决方案1】:

我用新安装的 wordpress 中的新 functions.php 文件替换了 wp-includes 文件夹中损坏的 functions.php 文件。确保您从相同版本的 wordpress 中获得一个。不确定不同的版本是否会得到相同的结果。

这解决了我的Call to undefined function require_wp_db() /filename/filename/...wp-settings.php on line 71 问题,我可以登录了。

我建议在安装诸如侧边栏之类的任何东西之前备份您的functions.php 文件。这就是导致我的问题的原因。

【讨论】:

    【解决方案2】:

    您似乎包含两次 Wordpress 引导程序。消除第二个电话或使用require_once()

    你的 PHP 脚本是什么样子的?

    【讨论】:

    • FILE) . '/../../wp-config.php'); require_once(dirname(FILE) . '/../../wp-includes/wp-db.php'); $wpdb->show_errors(); $dupes = $wpdb->get_results('select bad_rows.* from wp_posts as bad_rows inner join ( select post_title, MIN(id) as min_id from wp_posts group by post_title with count(*) > 1 ) as good_rows on good_rows.post_title = bad_rows.post_title 和 good_rows.min_id bad_rows.id; '); foreach ($dupes as $dupe) { echo $dupe->post_title ."\n"; }
    • $wpdb->query(' delete bad_rows.* from wp_posts as bad_rows inner join ( select post_title, MIN(id) as min_id from wp_posts group by post_title with count(*) > 1 ) as good_rows关于 good_rows.post_title = bad_rows.post_title 和 good_rows.min_id bad_rows.id; '); ?>
    【解决方案3】:

    我只能自己安装 Wordpress,但是;

    wp-config.php;

    [line 30] require_once(ABSPATH . 'wp-settings.php');
    

    wp-settings.php;

    [line 242] require_wp_db();
    

    wp-includes/functions.php

    [line 2534] function require_wp_db() {
                    global $wpdb;
                    if ( file_exists( WP_CONTENT_DIR . '/db.php' ) )
                        require_once( WP_CONTENT_DIR . '/db.php' );
                    else
                        require_once( ABSPATH . WPINC . '/wp-db.php' );
                }
    

    虽然您(和 require_wp_db 函数)使用了 require_once,但您对 wp-includes/wp-db.php 的调用似乎是不必要的。尝试将其注释掉,看看问题是否消失。如果没有,请按照以下步骤进入 wp-config.php,随时注释掉包含的内容。希望您能够隔离导致问题的线路...

    【讨论】:

      【解决方案4】:

      检查您的文件是否正确调用,然后将 $wpdb 变量设为全局变量(global $wpdb;)

       include_once( __DIR__. '/../../../../wp-config.php');
          include_once( __DIR__. '/../../../../wp-load.php');
          include_once( __DIR__. '/../../../../wp-includes/wp-db.php');
          class Myclass{
           function anyname(){
              global $wpdb;
              $results = $wpdb->get_results( "SELECT * FROM table", OBJECT );
              print_r($results) ;
           }
      

      【讨论】:

        猜你喜欢
        • 2015-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        • 2019-12-05
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多