我有一个查询,它应该返回格式
的多行+---------------------+-------+
| Date | Count |
+---------------------+-------+
| 2016-04-15 01:00:00 | 10 |
+---------------------+-------+
如果没有匹配项,查询会重新运行
+---------------------+-------+
| Date | Count |
+---------------------+-------+
| Null | 0 |
+---------------------+-------+
我想测试这两个条件,前者返回一些JSON,后者返回空JSON(不是很多JONS'无',' 0' )。
我试图偷看第一行
$firstRow = $sqlQuery->fetch(PDO::FETCH_ASSOC);
if ($firstRow['Count'] == 0)
$returnData = '';
else
$returnData = $sqlQuery->fetchAll(PDO::FETCH_ASSOC);
但是,它似乎在偷看'第一行意味着我之后不能fetchAll()
,因为在这种情况下JSON数据也是空的。
我误解了吗?我该如何编码这个支票呢?
[Updfate]问题是查询为每个日期返回一行NULL, 0
。
如果数据是"真实的",我可以FETCH_ALL()
然后json_encode()
,但请注意NULL, 0
我的所有内容都不是&# 39;我想这样做,我想要json_encode()
一个空字符串并返回它。
答案 0 :(得分:1)
您的查询可能会被重新表示为不返回任何元组而不是NULL,0元组。但是,快速而又脏的修复方法是将您的查询包含在另一个过滤NULL日期的查询中:
SELECT * FROM (<your current query>) x WHERE `Date` IS NOT NULL