PDO fetchAll() - json_encode在使用JOIN时不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDO fetchAll() - json_encode在使用JOIN时不起作用相关的知识,希望对你有一定的参考价值。
我正在使用PDO
从表中获取所有行:
$pdo = new PDO('mysql:host=127.0.0.1;dbname=learning', 'root', '');
$query = $pdo->preapre("
SELECT *
FROM people
INNER JOIN city
ON
people.id = city.person_id
");
$query->execute();
$people = $query->fetchAll(PDO::FETCH_ASSOC);
现在,在这一点,如果我print_r
这个$people
变量我得到一个多维数组,其中包含该表中的所有行:
Array
(
[0]=>Array
(
[id] => 1
[name] => Emma
[city] => New York
)
[1]=>Array
(
[id] => 2
[name] => John
[city] => Los Angeles
)
//and so on
)
但如果我想json_encode
$people
变量然后回应它我得到一个空白屏幕:
$j = json_encode($people);
echo $j;
我想我做错了但我不明白什么,有人可以帮我理解并解决这个问题吗?
谢谢! :d
UPDATE
关于使用var_dump
:
var_dump($j);
我越来越:
bool(false)
P.S我应该提到我将查询更改为INNER JOIN
- 没有INNER
json_encode
工作
答案
您必须在charset
连接中将pdo
设置为UTF8:
$pdo = new PDO('mysql:host=127.0.0.1;dbname=learning;charset=UTF8', 'root', '');
//your code
以上是关于PDO fetchAll() - json_encode在使用JOIN时不起作用的主要内容,如果未能解决你的问题,请参考以下文章