PHP MySql fetch json暂无内容

irtuqstp  于 2023-08-02  发布在  PHP
关注(0)|答案(2)|浏览(91)

我在从数据库获取结果并转换为JSON时遇到了问题。在我的API调用中,它给我返回的正文的空内容(总空白),状态为200。
下面是我的代码:

$weekAndYear = $year."/".$week; // incoming params as e.g "2016/19"

$stmt = $this->db->prepare("SELECT r.*, p.code FROM report r, product p WHERE "
        . "r.pid=p.pid AND r.product=:productCode "
        . "AND r.status='Published' AND r.pid=25 AND r.week=:weekAndYear");
$stmt->bindparam(":productCode", $productCode);
$stmt->bindparam(":weekAndYear", $weekAndYear);
$stmt->execute();

while($price=$stmt->fetch(PDO::FETCH_ASSOC)) {
    //echo $price;
    $arr_price[] = $price;
 }
 

$data['priceReport'] = $arr_price;
 
 
//echo $weekAndYear;
$data['status'] = "OK";

return json_encode($data);

字符串
当我在我的phpmyadmin MySQL服务器上测试查询时,它运行良好。
在我的PHP方面,不同的$weekAndYear参数会有一些运行良好,而有些则不行。数组部分有什么问题吗?
我的API响应头:
缓存控制→无存储,无缓存,必须重新验证,后检查=0,预
检查=0
连接→Keep-Alive
内容长度→0
Content-Type →application/json
日期→ 2016年5月5日星期四06:49:28 GMT
过期→ 1981年11月19日星期四08:52:00 GMT
保持活动→超时=5,最大值=100
Pragma →无缓存
服务器→Apache/2.4.18(Unix)LibreSSL/2.2.6 PHP/5.5.31
X-Powered-By →PHP/5.5.31
请帮帮我

kxxlusnw

kxxlusnw1#

我假设(也许是错误的)你的代码片段不是一个函数。将最后一行从return改为echo,如下所示:

echo json_encode($data);

字符串

iih3973s

iih3973s2#

除非第一个代码片段是一个函数,否则您需要使用json_encode而不是return语句。
Fetch可以获取任何类型的内容,甚至是HTML。PHP所做的是生成内容,将其写入文件并发送到浏览器。当你用PHP生成HTML时,你不返回它,你echo它到页面。
AJAX 也是如此。您使用PHP将数据写入文件并提供服务。
替换这个:

return json_encode($data);

字符串
用这个:

echo json_encode($data);

相关问题