创建一个可以进行json编码的php关联数组


Creating a php associative array that can be json encoded

好的,所以我有一个类似的can。

<?php
$con = mysqli_connect("localhost", "user", "password", "DB");
if (mysqli_connect_errno()){
    echo "failed to connect:" . mysqli_connect_error();
}
$grab = mysqli_query($con, "SELECT * FROM DB");
$cars = while($row = mysqli_fetch_assoc($grab)){
     "id" => $row["Id"], "name" => $row["Name"], "color" => $row["Color"];
}
json.encode($cars);

所以我知道while循环有点奇怪,但我需要知道如何调整代码,以便对生成的变量进行json编码,这样我就得到了一个关联数组数组。

我知道这段代码不起作用,但我该如何让它发挥作用,我猜这将需要更多的工作,但我对编码和php非常陌生。

任何帮助都将不胜感激,谢谢。

$cars = array();
while($row = mysqli_fetch_assoc($grab)){
     $cars[] = array("id" => $row["Id"], "name" => $row["Name"], "color" => $row["Color"]);
}
json_encode($cars);

这是正确的语法和方法

关闭?

$the_array = array();
while($row = mysqli_fetch_assoc($grab)) {
    $temp = array();
    $temp['id'] = $row['Id'];
    $temp['name'] = $row['Name'];
    $temp['color'] = $row['Color'];
    $the_array[] = $temp;
}
json_encode($the_array);
  1. mysql方法在PHP中折旧,请尝试使用PDO扩展
  2. 使用以下内容
$grab = mysql_query($con, "SELECT * FROM DB");
$cars = array(); $i = 0;
while($row = mysql_fetch_array($grab))
     $cars[$i++] = array("id" => $row["Id"], "name" => $row["Name"], "color" => $row["Color"]);
header('Content-Type: application/json');
json.encode($cars);