sql >> Databasteknik >  >> RDS >> Mysql

codeIgniter använd mysql_real_escape_string() istället.databasanslutningsproblem

Var inte rädd för att ändra kärnfiler, bara ändra FCPATH/system/database/drivers/mysqli/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);
    }
    else
    {
        $str = addslashes($str);
    }

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

    return $str;
}

Jag hade samma problem

Bättre lösning -> https://ellislab.com/forums/viewthread/228288/ "stated in github that it will be fixed in CodeIgniter 3.0 the fix already exists in that repository"



  1. Indexerar MySQL NULL-värden?

  2. Hur undkommer man % i en fråga med pythons sqlalchemys execute() och pymysql?

  3. Åtgärda "ERROR 1136 (21S01):Kolumnantal matchar inte värderäkning på rad 1" när du infogar data i MySQL

  4. Konvertera 'smalldatetime' till 'datetime' i SQL Server (T-SQL-exempel)