PHP : CodeIgniter mysql_real_escape_string 警告

Posted 亦虚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP : CodeIgniter mysql_real_escape_string 警告相关的知识,希望对你有一定的参考价值。

版本 CodeIgniter 3 php 5.4

感谢万能的stackoverflow。

得修改CodeIgniter的源码。

./system/database/drivers/mysql/mysql_driver.php

/**
     * Escape String
     *
     * @access    public
     * @param    string
     * @param    bool    whether or not the string will be used in a LIKE condition
     * @return    string
     */
    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(‘mysql_real_escape_string‘) AND is_resource($this->conn_id))
        {
            $str = mysql_real_escape_string($str, $this->conn_id);
        }
                elseif (function_exists(‘mysql_real_escape_string‘))
        {
            if (is_object($this->conn_id)) {
                            $str = mysql_real_escape_string($str, $this->conn_id);
                        } else {
                            $str = addslashes($str);
                        }
        }
elseif (function_exists(‘mysql_escape_string‘))
        {
            $str = mysql_escape_string($str);
        }
        else
        {
            $str = addslashes($str);
        }

        // escape LIKE condition wildcards
        if ($like === TRUE)
        {
            $str = str_replace(array(‘%‘, ‘_‘), array(‘\%‘, ‘\_‘), $str);
        }

        return $str;
    }

斜体加下划线的就是修改过的部分。

参考:https://stackoverflow.com/questions/33995279/codeigniter-showing-error-mysql-real-escape-string-expects-parameter-2-to-be

以上是关于PHP : CodeIgniter mysql_real_escape_string 警告的主要内容,如果未能解决你的问题,请参考以下文章

SYSTEMPATH/CodeIgniter.php 在第 219 行

Codeigniter 会话不适用于 PHP 7

如何删除codeigniter路径中的“index.php”

php中codeigniter中的应用程序路径

PHP实战002:CodeIgniter安装和入门使用

Codeigniter - 只能在 autoload.php 中加载模型