Какова эквивалентная команда «mysql_real_escape_string» в Oracle? - PullRequest
2 голосов
/ 07 февраля 2012

Я пытаюсь портировать php-файл, который используется с MySQL. Моя цель, чтобы этот файл работал с Oracle вместо MySQL. Я перевёл всю строку подключения Теперь я застрял в поиске эквивалентных команд Oracle для:

mysql_real_escape_string($string);

Может кто-нибудь сказать мне, что это будет, или направить меня куда-нибудь, что скажет мне. Спасибо!

Я дал попытку PDO::quote и PDO::prepare, и там говорится, что Call to a member function prepare() on a non-object как для подготовки, так и для объекта. Вся цель этого - заставить TightURL работать прямо с моего веб-сервера. Мой веб-сервер использует Oracle, а не MySQL, поэтому мне приходится конвертировать основной php-файл для работы с Oracle.

Я пытался сделать это на сервере WAMP с MySQL, и он работал отлично, но когда я пытаюсь использовать подготовку или цитату для Oracle, я получаю эту ошибку выше.

1 Ответ

5 голосов
/ 07 февраля 2012

Поскольку вы используете PDO для подключения к Oracle, функция будет иметь вид PDO :: quote .Обратите внимание, что PDO::quote помещает кавычки вокруг строк, а mysql_real_escape_string - нет.

Сказав это, было бы лучше использовать подготовленные операторы вместо конкатенации строк для выдачи операторов SQL.Из руководства:

Если вы используете эту функцию для построения операторов SQL, настоятельно рекомендуется использовать PDO :: prepare () для подготовки операторов SQL со связанными параметрами вместо использования PDO :: quote() для интерполяции ввода пользователя в оператор SQL.Подготовленные операторы со связанными параметрами не только более переносимы, более удобны, невосприимчивы к SQL-инъекциям, но часто намного быстрее выполняются, чем интерполированные запросы, поскольку как серверная, так и клиентская сторона могут кэшировать скомпилированную форму запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...