Php SELECT查询在非null字段上返回null
我有一个php文件,它返回一个JSON数组,我将与javascript结合使用,用sql数据库中的新闻填充网站。 sql查询在服务器上工作并返回我想要的信息。当php文件返回以下内容时:Php SELECT查询在非null字段上返回null,php,mysql,sql-server,json,Php,Mysql,Sql Server,Json,我有一个php文件,它返回一个JSON数组,我将与javascript结合使用,用sql数据库中的新闻填充网站。 sql查询在服务器上工作并返回我想要的信息。当php文件返回以下内容时: [{"rubrik":null,"ingress":null,"datum":"2014-11-10 16:11:54},{"rubrik":null,"ingress":null,"datum":"2014-11-28 23:17:02"}] 日期是正确的。尽管rubrik和ingres字段中有一些文本并且
[{"rubrik":null,"ingress":null,"datum":"2014-11-10 16:11:54},{"rubrik":null,"ingress":null,"datum":"2014-11-28 23:17:02"}]
日期是正确的。尽管rubrik和ingres字段中有一些文本并且不是空的。
数据库如下所示:
NAME TYPE COLLATION NULL
rubrik varchar(254) latin1_swedish_ci No
ingress text latin1_swedish_ci No
nyhet text latin1_swedish_ci No
datum timestamp No
现在不需要尼赫特
这就是我的php文件的样子
$result = mysqli_query($con, "SELECT rubrik, ingress, datum FROM svensta_news");
$return_arr = array();
while ($row = mysqli_fetch_array($result))
{
$row_array['title']=$row['rubrik'];
$row_array['ingress']=$row['ingress'];
$row_array['date']=$row['datum'];
array_push($return_arr, $row);
}
echo json_encode($return_arr);
我不明白这里有什么不对,为什么我的php在非null的字段上返回null
编辑:有关数据在数据库中的外观的信息
nyhetsId rubrik ingress news date
120 sometitle Someingress Null 2014-11-10 16:11:54
122 sometitle2 Someingress Null 2014-11-28 23:17:02
不从while条件获取值,因为您声明$return\u arr=array
你应使用:
$return_arr['title']=$row['rubrik'];
$return_arr['ingress']=$row['ingress'];
$return_arr['date']=$row['datum'];
在while条件下获取值
使用MySQL COLLATE进行查询:
选择rubrik COLLATE latin1_swedish_ci作为rubrik,ingress COLLATE latin1_swedish_ci作为ingress,datum COLLATE latin1_swedish_ci作为svensta_news的数据我没有测试它,但我认为这应该有效
$result = mysqli_query($con, "SELECT rubrik, ingress, datum FROM svensta_news");
$return_arr = array();
while ($row = mysqli_fetch_array($result))
{
$return_arr[] = array(
'title' => $row['rubrik'],
'ingress' => $row['ingress'],
'date' => $row['datum']
);
}
echo json_encode($return_arr);
将$row\u数组初始化为数组 也可以将代码更改为
array_push($return_arr, $row_array);
若数据库中phpmyadmin中设置为null的字段中的字段值为null/空,则返回null。检查null的条件。如果$row['rubrik']==空| |$row['rubrik']!={$row_数组['title']=$row['rubrik']];}其他{$row_数组['title']=}关于这一点有什么解决方案/解释吗?这将返回与以前相同的JSON,在实际不为null的字段上返回null。与foulty null值的问题相同,这也只返回DB中的一行。尝试添加rubrik不为null,入口不为null,数据不为null,我认为你的问题出在查询上。这样做的结果是一样的。
array_push($return_arr, $row_array);