codeIgniter的设置数据库ErrorException [8192]:mysql_real_escape_string()

时间:2014-10-06 02:19:38

标签: php mysql codeigniter

我从服务器上下载了一个codeIgniter项目,我试图在我的localhost上运行它,我对PHP,Mysql不是很熟悉,我在stackoverflow和google中使用了不同的建议来设置环境但是我有一些错误,如果你能帮我设置,我很感激!

我使用MAMP作为本地服务器

这是我的错误:

enter image description here

这是我的database.php

$active_group = ENVIRONMENT;
$active_record = TRUE;

$db['development']['hostname'] = 'mysqli:host=localhost';
$db['development']['username'] = 'root';
$db['development']['password'] = 'pass';
$db['development']['database'] = 'test';
$db['development']['dbdriver'] = 'mysqli';
$db['development']['dbprefix'] = '';
$db['development']['pconnect'] = TRUE;
$db['development']['db_debug'] = FALSE;
$db['development']['cache_on'] = FALSE;
$db['development']['cachedir'] = '';
$db['development']['char_set'] = 'utf8';
$db['development']['dbcollat'] = 'utf8_general_ci';


$db['staging']['hostname'] = 'mysqli:host=localhost';
$db['staging']['username'] = 'mgr';
$db['staging']['password'] = 'test';
$db['staging']['database'] = 'bmg';
$db['staging']['dbdriver'] = 'mysqli';
$db['staging']['dbprefix'] = '';
$db['staging']['pconnect'] = TRUE;
$db['staging']['db_debug'] = FALSE;
$db['staging']['cache_on'] = FALSE;
$db['staging']['cachedir'] = '';
$db['staging']['char_set'] = 'utf8';
$db['staging']['dbcollat'] = 'utf8_general_ci';

这是mysqli_driver.php

function escape_str($str, $like = FALSE)
    {
        if (is_array($str))
        {
            foreach ($str as $key => $val)
            {
                $str[$key] = $this->escape_str($val, $like);
            }

            return $str;
        }

        if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id))
        {
            $str = mysqli_real_escape_string($this->conn_id, $str);
        }
        elseif (function_exists('mysql_real_escape_string'))
        {
            $str = mysql_real_escape_string($str);
        }
        else
        {
            $str = addslashes($str);
        }

        if ($like === TRUE)
        {
            $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str);
        }

        return $str;
    }

感谢任何帮助。

更新

以下是扩展名列表

; Extensions

;extension=apcu.so

extension=imap.so
extension=yaz.so
extension=mcrypt.so
extension=gettext.so
extension=pgsql.so
extension=pdo_pgsql.so
extension=pdo_mysql.so
I added -> extension=pdo_mysqli.so

;extension=imagick.so
;extension=tidy.so
;extension=oauth.so

我检查了我的php信息,我看到了mysqli enable

enter image description here

但在我的文件夹中我没有​​任何mysql.sock

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以在CodeIgniter中进行如下更新:

<div class="col-4">
   {some PHP code that receives information}
</div>