如何从php mysql数据库获取数组格式的数据



我在PHP中有以下函数,我试图以下面提到的特定格式获得数组,但没有成功,我选择mysql表中的特定列,而不是包含json值,如

{
"lat": "-0.008668899503063161",
"lng": "0.0025903204871857714"
}

这是函数

function test()
{
$pdo = new PDO ("mysql:host=localhost;dbname=dbname","user", "secret");
$statement=$pdo->prepare("SELECT test FROM merchants WHERE user_id = 1");
$statement->execute();
$data = array();
while( $row = $statement->fetch(PDO::FETCH_ASSOC) )
{
$data[] = json_decode( $row['test'] );
}

return $data ;
}

我期待下面的结果

['lat' => -0.008668899503063161,'lng' => 0.0025903204871857714,]

但这就是我一直得到的

[{"lat":"-0.008668899503063161","lng":"0.0025903204871857714"}]

如果你只想要一个单一的值,就不要压入数组

function test()
{
$pdo = new PDO ("mysql:host=localhost;dbname=dbname","user", "secret");
$statement=$pdo->prepare("SELECT test FROM merchants WHERE user_id = 1");
$statement->execute();
row = $statement->fetch(PDO::FETCH_ASSOC) )
if ($row) {
$data = json_decode( $row['test'], true );
} else {
$data = null;
}
return $data ;
}

我是这样做的

'merchants.location' =>
[
'lat' => $data['lat'],
'lng' => $data['lng']
]

最新更新