проблема цитат postgresql - PullRequest
       3

проблема цитат postgresql

0 голосов
/ 21 января 2011
$url = "What's up with "You doing this"";
$q = sprintf ("update user set url='%s'",$url);
pg_query ($db_conn, $q)

Я хочу вставить все в базу данных точно так, как хочет пользователь.Я не хочу ничего избегать.Вышесказанное потерпит неудачу из-за кавычек.Я знаю, что одинарные кавычки должны идти вокруг строки postgresql (url = '% s').Поскольку в моей строке URL есть двойные кавычки, запрос не будет обновляться из-за этого.Я уверен, что мог бы заменить строку для всех двойных кавычек и сделать их одинарными, но что, если пользователь действительно хочет двойные кавычки.И я не могу использовать строковую замену, чтобы поставить обратную косую черту, потому что в соответствии с документами postgresql косая черта скоро устареет (http://www.postgresql.org/docs/8.1/interactive/sql-syntax.html) плюс, что противоречит вставке только того, что ввел пользователь.

Что люди предлагают мне сделать?

Ответы [ 3 ]

2 голосов
/ 21 января 2011

Используйте pg_escape_string для экранирования кавычек в вашей строке.

1 голос
/ 21 января 2011

Использовать параметризованные запросы:

pg_query_params
        (
        $db_conn,
        "UPDATE user SET url = $1",
        array('What's up with "You doing this"')
        );
0 голосов
/ 21 января 2011

экранируйте двойные кавычки в тексте, как это

$ url = "Что случилось с \" Вы делаете это \ "";

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