mysql_real_escape_string не определено

Я использую PHP версии 5.3 и пытаюсь использовать mysql_real_escape_string($unescaped_string) в своем коде, но получаю ошибку:

 Fatal error: Call to undefined function mysql_real_escape_string() in /var/www/engine/database.php on line 38 

Однако я могу подключиться к базе данных. Почему он недоступен?

Я использую PHP версии 5.3.

Related of "mysql_real_escape_string не определено"

Обновление, как упоминалось в комментарии , mysql_ устарело с 5,5 :

Расширение mysql устарело с PHP 5.5. Вместо этого следует использовать расширение mysqli или PDO. Отклонение было определено в mysql_deprecation , где можно найти обсуждение причин этого решения.

и удалены в PHP 7 .


mysql_real_escape_string() является стандартной частью функции MySQL «пакет» и всегда должна работать, если расширение загружено правильно.

mysql_ ли какая-либо другая функция mysql_ ? (Это не должно)

Удостоверьтесь, что у вас есть эта строка без комментариев в вашем php.ini :

 extension=mysql.so 

Также было бы разумно использовать mysqli или PDO вместо ( mysql_ устарел ), они оба могут позаботиться об эвакуации для вас.

Интересно, что после изучения всех других решений здесь я понял, что проблема на самом деле связана с тем, что расширение php5-mysql не установлено: оно не установлено по умолчанию на новом Ubuntu, а также при установке новой php. Итак, для меня решение стало: установить расширение php5-mysql:

 sudo apt-get install php5-mysql 

После этого я снова не получал эти неприятные ошибки mysql_ * 😉

Возможно, ваша проблема связана с конфигурацией php-сервера (компиляция).

Здесь больше информации о mysql_real_escape_string: http://www.php.net/manual/en/function.mysql-real-escape-string.php

Расширение MySQL устарело с PHP 5.5. Поэтому mysql_real_escape_string () недоступен в PHP 7. Это означает, что пользовательский ввод не может быть экранирован правильно и оставляет код открытым для SQL-инъекций.

Официальным решением PHP является замена ext / mysql на MySQLi, PDO или другое поддерживаемое расширение базы данных.

Чтобы предотвратить атаки SQL-инъекций, рекомендуется использовать подготовленные инструкции и параметризованные запросы при разговоре с базой данных.