Mysqli исключение в Codeigniter - PullRequest
0 голосов
/ 11 ноября 2018

Попытка настроить проект в Codeigniter У меня есть:

Неустранимая ошибка PHP: необработанное исключение «Exception» с сообщением 'отсутствует: mysqli_real_escape_string или неверный идентификатор соединения' в /var/www/public/system/database/drivers/mysqli/mysqli_driver.php:341\nStack трассировка: \ n # 0 /var/www/public/system/database/DB_driver.php(742): CI_DB_mysqli_driver-> escape_str ( '192.168.33.1') \ п # 1 /var/www/public/system/database/DB_active_rec.php(427): CI_DB_driver-> бежать ( '192.168.33.1') \ п # 2 /var/www/public/system/database/DB_active_rec.php(366): CI_DB_active_record -> _ где ('addr', '192.168.33.1', 'AND', true) \ n # 3 /var/www/public/application/classes/model.php(451): CI_DB_active_record-> где ('addr', '192.168.33.1') \ n # 4 /var/www/public/application/classes/model.php(495): Model :: find_id ('192.168.33.1', '*') \ n # 5 /var/www/public/application/classes/model.php(480): Model :: find_sub ('192.168.33.1', NULL) \ n # 6 /var/www/public/application/core/CIL_Controller.php(981): Модель :: найти ( '192.168.33.1') \ п # 7 /var/www/public/application/core/CIL_Controller.php(104): CIL_Controller-> check_blocked () \ п # 8 / var / www / public / system / core / Контроллер в /var/www/public/system/database/drivers/mysqli/mysqli_driver.php on линия 341

Я не могу понять, почему

Часть кода, которая генерирует ошибку:

if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id))
{
    $str = mysqli_real_escape_string($this->conn_id, $str);
}
else
{
    throw new Exception('missing: mysqli_real_escape_string or bad connection ID');
}

1 Ответ

0 голосов
/ 11 ноября 2018

Внимание! Безопасность: набор символов по умолчанию Набор символов должен быть установить либо на уровне сервера, либо с помощью функции API mysqli_set_charset (), чтобы он влиял на mysqli_real_escape_string (). Увидеть раздел понятия о наборах символов для получения дополнительной информации.

Или проверьте, есть ли какие-либо ошибки при попытке подключения

$mysqli = @new mysqli('localhost', 'user', 'my_password', 'my_db');

if ($mysqli->connect_errno) {
    die('Connect Error: ' . $mysqli->connect_errno);
}

И если все в порядке, сделайте это

$str= $mysqli->real_escape_string($str)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...