PHP PDO Выбрать запрос, отсутствует начальный пробел - PullRequest
0 голосов
/ 07 ноября 2018

Я обнаружил, что в моей первой записи результата отсутствует первый пробел при запросе к базе данных 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?" }

1 Ответ

0 голосов
/ 07 ноября 2018

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

header('Content-type: text/plain; charset=USASCII');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...