Зачем нужен ресурс в mysql_real_escape_string? - PullRequest
2 голосов
/ 02 июля 2010

Я очень долго интересовался, ПОЧЕМУ мне действительно нужен живой ресурс с подключенным к SQL для использования mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )

Разве эта функция не просто экранирует данные?Какой смысл подключаться?Я хочу использовать функцию без подключения, я спорю о создании учетной записи без привилегий, просто чтобы я мог это сделать.

Я вызываю функцию-оболочку runSQL(user, statement) и возвращаю массив с данными илилогический статус.

Я думал сделать это runSQL(user, statement, arguments-and-validation-data)

Я просто хочу причину.Я не могу найти "почему" на странице руководства.

Ответы [ 3 ]

5 голосов
/ 02 июля 2010

Правильное экранирование частично зависит от набора символов текущего соединения, поэтому ему необходимо знать эту информацию о действующем соединении.


Ваш комментарий, вот ссылка на руководство по MySQL C API, которое используется функцией PHP:

http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html

Там написано:

Обратите внимание, что mysql должно быть действительным, открытым соединением. Это необходимо, потому что экранирование зависит от набора символов, используемого сервером.

4 голосов
/ 02 июля 2010

Из документации по mysql_real_escape_string - http://php.net/manual/en/function.mysql-real-escape-string.php

Выход из специальных символов в unescaped_string, с учетом текущий набор символов соединение, чтобы его можно было безопасно разместить это в mysql_query ()

0 голосов
/ 02 июля 2010

Можно открывать несколько подключений MySQL одновременно.Обычно вы пропускаете параметр ресурса, потому что в вашем скрипте используется только 1 соединение MySQL, и по умолчанию используется последнее открытое соединение.

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