【问题标题】:Result of SQL Query in PHP not Formatting in JSONPHP中SQL查询的结果不是JSON格式
【发布时间】:2014-12-10 16:57:39
【问题描述】:

我有一个 PHP 脚本,可以根据 SQL 查询显示 JSON 数据。该数据库存储在我的 WAMP 服务器中,因此我在 PHPMyAdmin 中更新了此表以包含“E_Description”列并插入了一些句子。然后我重新启动了 wamp manager 中的所有服务。但是,当我将“E_Description”添加到查询的 Select 子句并运行脚本时,它会返回一个空白屏幕。我尝试将“E_Description”的类型从 TEXT 更改为 VARCHAR,但两者都没有区别。我还尝试了一个新脚本来简单地返回描述,但这也不起作用。

这是有效的 PHP 脚本:

$query = "SELECT Event_ID, Title, Category, Zone, Start_Date, End_Date FROM UM_Events" 
or die("Error in the consult.." . mysqli_error($link)); 

//execute the query. 
$result = $link->query($query); 
//display information: 

foreach ($result as $row){
$return['events'][]=array('event_id'=>$row['Event_ID'],'title'=>$row['Title'], 
'category'=>$row['Category'],'zone'=>$row['Zone'],'start_date'=>$row['Start_Date'], 
'end_date'=>$row['End_Date']);
}
$query = null;

header('Content-type: application/json');
echo json_encode($return);

不起作用的代码:

$query = "SELECT Event_ID, Title, Category, Zone, Start_Date, End_Date, 
E_Description FROM UM_Events" or die("Error in the consult.." . mysqli_error($link)); 

//execute the query. 

$result = $link->query($query); 

//display information: 

foreach ($result as $row){
$return['events'][]=array('event_id'=>$row['Event_ID'],'title'=>$row['Title'], 
'category'=>$row['Category'],
'zone'=>$row['Zone'],'start_date'=>$row['Start_Date'], 'end_date'=>$row['End_Date'],
 'e_description'=>$row['E_Description']);
}
$query = null;

header('Content-type: application/json');
echo json_encode($return);

谢谢

【问题讨论】:

  • 问题是什么?
  • $result = $link->query($query); 之后尝试var_dump($result); 看看里面是什么.. 另一件事是相信你可以做类似json_encode($result); 的事情,它也应该工作,因为$result 应该是一种数组本身。但首先要判断查询返回的数据是否正确。
  • 您应该检查您的查询是否通过 mysqli 错误检查返回值,如果失败则输出响应。
  • Mary,需要知道$result = $link->query($query); 语句的作用,因为看起来您正在发出查询但在尝试处理结果之前没有得到结果。您使用的是 MYSQL_* 或 MYSQLI_* 或 PDO 什么 MYSQL 扩展?
  • 我正在为此使用 PDO。 '$link' 像这样设置与数据库的连接: $link = mysqli_connect("localhost","root","","ulstermuseum_schema") 或 die("Error " . mysqli_error($link));我尝试了 var_dump($result) 并且一切都返回为空。有谁知道为什么查询不会返回值?

标签: php sql json wamp


【解决方案1】:

这不是已经完成了吗?在这里猜测 $link 是一个 mysqli 对象。

$query = "SELECT Event_ID, Title, Category, Zone, Start_Date, End_Date, E_Description FROM UM_Events");

$result = $link->fetch_assoc($link->query($query));

header('Content-type: application/json');
echo json_encode($result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多