PHP PDO Select Query пропускает начальный пробел

Я обнаружил, что в моей первой записи результата отсутствует первый пробел при запросе к базе данных SQLite и ODBC с помощью оболочки PHP для PDO. Как пример, это один из результатов, которые я вижу:

['Howdo I reset my password?','How do I change the email address registered to my account?']

Я видел этот результат при работе с несколькими типами баз данных и PDO. Кто-нибудь видел это тоже?

Я работаю на PHP 7.2.1. Я использую следующий код:

$db = new PDO("sqlite:../ncw.db");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$q = $db->prepare('SELECT title FROM Article WHERE category LIKE :value');
$q->execute(array('value' => '%' . $category . '%'));
$r  = $q->fetchAll(PDO::FETCH_ASSOC);
foreach($r as $row){
$a[] = "'" . $row['title'] . "'";
};
echo '[' . implode(",",$a) . ']';
$db = null;

Если я использую var_dump, я получаю следующие результаты:

array(1){ ["title"]=> string(27) "How do I reset my password?" } array(1) { ["title"]=> string(59) "How do I change the email address registered to my account?" }

0

Решение

Я нашел ответ. Я просмотрел кодировку символов результата и обнаружил, что это был ASCII, который, как я полагаю, связан с кодировкой текста в самой базе данных. Я установил набор символов как USASCII, и это решило проблему:

header('Content-type: text/plain; charset=USASCII');
-1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector