Пытаясь настроить проект в 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 на
линия 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');
}
Предостережение Безопасность: набор символов по умолчанию Набор символов должен быть
установить либо на уровне сервера, либо с помощью функции 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)
Других решений пока нет …