我正在php中做一个web服务,将数据编码为json。我的php代码是:
function getProgramDay($day)
{
global $DDBB_SERVER, $DDBB_USER, $DDBB_PASSWORD, $DDBB;
$sql = "SELECT program.id, programa.name FROM `mybd` WHERE program.day = '" . $day . "'";
$con = mysqli_connect($DDBB_SERVER, $DDBB_USER, $DDBB_PASSWORD, $DDBB);
if (!$con) {
die('Error de Conexión (' . mysqli_connect_errno() . '): ' . mysqli_connect_error());
}
if (!mysqli_set_charset($con, "utf8")) {
die("Error loading character set utf8:" . mysqli_error($con));
}
$result = mysqli_query($con, $sql);
$res = array();
// Prepare data
while ($row = mysqli_fetch_assoc($result)) {
$res[] = $row;
}
// Free resultset
mysqli_free_result($result);
// Close connection
mysqli_close($con);
// Return data
return $res;
}
这个函数在json中的结果是:
[{"id":"1","nombre":"Hello"}]
我希望结果是:
{"results":[{"id":"1","nombre":"Hello"}]}
我该怎么做?我尝试过但没有成功:
return "{'results':" .$res . "}";
非常感谢:-(
return json_encode(array("results"=>$res));
正如评论中所说,如果你想返回一个数组并在调用代码中创建json,可以这样做:
return array("results"=>$res);
您的输出
[{"id":"1","nombre":"Hello"}]
是一个阵列(用它构建的交换机(// Prepare data
while ($row = mysqli_fetch_assoc($result)) {
$res[] = $row;
}
你想要的是一个对象
object(stdClass)#6 (1) {
["results"] => array(1) {
[0] => object(stdClass)#7 (2) {
["id"] => string(1) "1"
["nombre"] => string(5) "Hello"
}
}
}
因此,使用mysqli_fetch_object更改Prepare数据,并使用json_encode