3混淆MySQL警告

时间:2013-05-03 16:34:49

标签: php mysql

首先,如果标题不够明确(我发现很难解释我正在处理的内容,英语不是我的母语),我很抱歉。

这两个脚本会导致三个警告:

  

警告:出于安全原因,已禁用mysql_pconnect()   /home/username/public_html/xxx/libraries/adodb/drivers/adodb-mysql.inc.php   在第227行

     

警告:mysql_real_escape_string()   [function.mysql-real-escape-string]:拒绝用户访问   'root'@'localhost'(使用密码:NO)in   第140行/home/username/public_html/xxx/include/config.php

     

警告:mysql_real_escape_string()   [function.mysql-real-escape-string]:无法链接到服务器   在/home/username/public_html/xxx/include/config.php上建立   第140行

配置PHP

    if($sban != "1")
{
    $bquery = "SELECT count(*) as total from bans_ips WHERE ip='".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."'";
    $bresult = $conn->execute($bquery);
    $bcount = $bresult->fields['total'];
    if($bcount > "0")
    {
        $brdr = $config['baseurl']."/banned.php";
        header("Location:$brdr");
        exit;
    }
}

adodb-mysql.inc.php

function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename)
    {
        if (ADODB_PHPVER >= 0x4300)
            $this->_connectionID = mysql_pconnect($argHostname,$argUsername,$argPassword,$this->clientFlags);
        else
            $this->_connectionID = mysql_pconnect($argHostname,$argUsername,$argPassword);
        if ($this->_connectionID === false) return false;
        if ($this->autoRollback) $this->RollbackTrans();
        if ($argDatabasename) return $this->SelectDB($argDatabasename);
        return true;    
    }

我不明白的是,无论是使用localhost还是我的其他托管(我有2个托管服务,只有一个运行良好),都没有错误。

拜托,请你以新手的方式向我建议做什么?

非常感谢你。

1 个答案:

答案 0 :(得分:1)

mysql_query子系统需要在转义函数运行之前定义活动连接,但不要打扰修复此问题。而是使用您正确使用的数据库库。

目前还不清楚你在这个简短的例子中使用了什么,连接代码被省略了。

PDO execute函数可以绑定值,mysqli bind_param方法类似。两者都完全取代mysql_real_escape_string