Данный хак устраняет ошибку:
Warning: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/.../engine/classes/mysqli.class.php on line 162
Тестировалось на версиях:
DLE 8.2 - 8.5
Подробнее в полной новости...
Столкнулся с такой проблемой Warning: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in /var/www/.../engine/classes/mysqli.class.php on line 162 серфил по Интернету толком ни чего работоспособного так и не нашел. Предлагали просто в файле:
engine\classes\mysqli.class.php изменить следующие строчки
На это
Все хорошо, но при попытке создать резервную базу данных она не создавалась!!! и опять таки вылезло сообщение и в нем было написано
Возникла ошибка!
mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. (2)
Мое решение данного вопроса очень прост
Заходим \upload\engine\inc\dumper.php
Ищем
$row[$k] = isset($row[$k]) ? "'" . mysql_escape_string($row[$k]) . "'" : "NULL";
Заменяем на
$row[$k] = isset($row[$k]) ? "'" . mysql_real_escape_string($row[$k]) . "'" : "NULL";
Вот и все проблема устранилась. Почему создатели DLE сами не устранили эту проблему для меня загадка . Надеюсь, что вам помог! Извиняйте если что это моя первая публикация.
engine\classes\mysqli.class.php изменить следующие строчки
function safesql( $source )
{
if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
else return mysql_escape_string($source);
}
{
if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
else return mysql_escape_string($source);
}
На это
function safesql( $source )
{
if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
else return ($source);
}
{
if ($this->db_id) return mysqli_real_escape_string ($this->db_id, $source);
else return ($source);
}
Все хорошо, но при попытке создать резервную базу данных она не создавалась!!! и опять таки вылезло сообщение и в нем было написано
Возникла ошибка!
mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. (2)
Мое решение данного вопроса очень прост
Заходим \upload\engine\inc\dumper.php
Ищем
$row[$k] = isset($row[$k]) ? "'" . mysql_escape_string($row[$k]) . "'" : "NULL";
Заменяем на
$row[$k] = isset($row[$k]) ? "'" . mysql_real_escape_string($row[$k]) . "'" : "NULL";
Вот и все проблема устранилась. Почему создатели DLE сами не устранили эту проблему для меня загадка . Надеюсь, что вам помог! Извиняйте если что это моя первая публикация.