php pdo и html декодирование сущностей - PullRequest
1 голос
/ 23 января 2012

Данные были вставлены в базу данных после экранирования следующим образом:

$caller=htmlentities($formVarsI['caller'], ENT_QUOTES, "UTF-8");

Некоторые из $ вызывающих имеют одинарные кавычки, например, О'Коннор, и тогда они выглядят как О ' Коннор в базе данных.

Я сейчас пытаюсь извлечь данные, используя API REST, и ниже мой php:

$sql = "SELECT caller FROM tbl_calls ";
try {
    $db = getConnection();
    $stmt = $db->query($sql);  
    $calls= $stmt->fetchAll(PDO::FETCH_OBJ);
    $db = null;
    echo json_encode($calls);
    }

У меня вопрос, как html_entity_decode на $ caller, чтобы удалить

'

для каждого абонента, к которому он относится. Обратите внимание, что есть ок. 10000 записей в БД.

Ответы [ 2 ]

5 голосов
/ 23 января 2012

Решение, конечно, состоит в том, чтобы прекратить использование htmlentities() для экранирования данных, поступающих в базу данных.

Функция htmlentities() предназначена для экранирования данных, вводимых вHTML-контекст документа.Не база данных.

2 голосов
/ 23 января 2012

Я думаю, вы должны указать параметр quotes.

html_entity_decode('O'Connor', ENT_QUOTES);
// output: O'Connor

По умолчанию это ENT_COMPACT, и он просто конвертирует двойные кавычки, а не одиночные.

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