我想在一个json编码中添加我的数据库中的所有数组并稍后对其进行解码..但是我遇到了一个我不知道如何修复的问题。
我正在尝试将sql查询中的所有数组添加到一个数组中,然后使用其中的所有数组对该数组进行编码。
我目前的代码:
$dbh = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass);
$result = array();
foreach($dbh->query('SELECT * from bier') as $row) {
$result[] += $row;
}
print json_encode($result);
更新的代码:
function getData()
{
try {
$dbh = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass);
$result = array();
foreach($dbh->query('SELECT * from bier') as $row) {
$result[] = $row;
}
$json = json_encode($result, JSON_PRETTY_PRINT);
var_dump($json);
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
}
目前返回:布尔值为
答案 0 :(得分:0)
在PHP中,+=
复合运算符用于&#34;添加&amp;分配&#34 ;;但是,这不会像您期望将项目插入数组那样有效。
如果您从@Rajdeep指出的那行中删除+
,您的代码应该可以正常工作。
以下是您的代码,为了清晰起见,更新了一些更改:
try
{
$data = new PDO('mysql:host='.$this->server.';dbname='.$this->database.'', $this->user, $this->pass);
$data->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$list = [];
foreach($data->query('SELECT * from bier') as $item)
{ $list[] = $item; }
$json = json_encode($list, JSON_PRETTY_PRINT);
echo $json;
}
catch (PDOException $fail)
{
echo $fail->getMessage();
exit;
}
你可能注意到了;变量名称(即数组)后的[] =
字符序列将新项目插入到已分配的数组中。
try --> catch
块应指出是否存在问题。
以下是有关如何检查错误的更多信息:http://php.net/manual/en/pdo.connections.php