【发布时间】: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) 并且一切都返回为空。有谁知道为什么查询不会返回值?