Обработка апострофов, php и pgsql - PullRequest
1 голос
/ 27 мая 2010

Для моих форм я использую pg_escape_string в каждом поле, прежде чем вставлять их в базу данных. Так что я получаю что-то вроде firstname = 'O''reilly'. Но когда я пытаюсь распечатать это, я получаю O''reily, 2 апострофы. Разве это не 1 апостроф, О'рейли?

Это не проблема отладки, мне просто интересно, если у вас есть имя = 'O''reilly', как вы печатаете это, так что это просто O'reilly вместо O''reilly?

1 Ответ

0 голосов
/ 27 мая 2010

Библиотеки БД обычно не имеют (или никогда) не имеют функции unescape, потому что в этом нет особой необходимости. БД будет хранить и возвращать данные без экранирования. Кроме того, поскольку вы вызываете функцию, это означает, что у вас уже есть данные в неэкранированном виде.

Однако вы можете удалить двойные апострофы из строки простым вызовом str_replace :

echo str_replace("''", "'", "O''reilly");
...