mysql_real_escape_string()和mysql_get_server_info():用户''''127.0.0.1'拒绝访问(使用密码:否)

时间:2016-06-15 12:47:16

标签: mysql wordpress php-5.5 mysql-real-escape-string

今天我将我的WordPress网站转移到了一个运行更新版本的php(5.5.0)的新网络主机,而不是我之前的网络主机。我转移了我的网站,我开始在我自己编写的一些插件上获得错误按摩。

  

警告:mysql_real_escape_string():用户''''127.0.0.1'(使用密码:NO)拒绝访问...

我做了一些研究,但我发现只是我没有建立mysql的链接(我认为这是假的,因为WordPress数据库类为我们做了这个)。

关于如何解决问题的任何想法?您可以在下面找到我在插件中连接数据库的方式。

function init() 
{
    $this->database = $GLOBALS['wpdb'];
    $this->prefix = $GLOBALS['table_prefix'];   

    if(version_compare(mysql_get_server_info(), '4.1.0', '>=')) 
    {
        if (!empty($this->database->charset))
            $this->charset_collate .= sprintf(' DEFAULT CHARACTER SET %s', $this->database->charset);

        if (!empty($this->database->collate))
            $this->charset_collate .= ' COLLATE ' . $this->database->collate;
    }   

    register_activation_hook(__FILE__, array($this, 'install_database_tables'));
}

1 个答案:

答案 0 :(得分:1)

在做了一些研究并查看 wp-db.php 文件后,我发现您需要更换以下功能:

global $wpdb;

//mysql_get_server_info() becomes
$wpdb->db_version() = 'YOUR_SQL_SERVER_INFO';

//mysql_real_escape_string() becomes
$wpdb->_real_escape('some_string') = 'ESCAPED_STRING';