Php 如果行数超过15,则Postman中不会返回JSON
我有一个RESTAPI,它是为获取我们正在开发的测验应用程序的问答数据而编写的,我使用的sql在API文件中如下所示。 我已经将限制设置为(限制0,15),就好像我将其更改为16一样,邮递员不会返回任何数据。下面是相同的屏幕截图Php 如果行数超过15,则Postman中不会返回JSON,php,mysql,json,api,postman,Php,Mysql,Json,Api,Postman,我有一个RESTAPI,它是为获取我们正在开发的测验应用程序的问答数据而编写的,我使用的sql在API文件中如下所示。 我已经将限制设置为(限制0,15),就好像我将其更改为16一样,邮递员不会返回任何数据。下面是相同的屏幕截图 <?php include('config.php'); if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGI
<?php
include('config.php');
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers:
{$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
$postdata = file_get_contents("php://input");
if (isset($postdata))
{
$request = json_decode($postdata);
$SubID = $request->SubID;
if( isset($SubID) ) {
$select_sql = "SELECT * FROM `questions` WHERE `subjectid` =
'".$SubID."'";
$select_query = mysqli_query($con,$select_sql);
$count = mysqli_num_rows($select_query);
if($count>0) {
while($fetch_obj = mysqli_fetch_array($select_query
,MYSQLI_BOTH)) {
$SubId = $fetch_obj["subjectid"];
$QuestId = $fetch_obj["questionid"];
$QuestType = $fetch_obj["questiontype"];
$Quest = $fetch_obj["question"];
$Ans1 = $fetch_obj["answer1"];
$Ans2 = $fetch_obj["answer2"];
$Ans3 = $fetch_obj["answer3"];
$Ans4 = $fetch_obj["answer4"];
$CorrectAns = $fetch_obj["correctanswer"];
$Hint = $fetch_obj["hint"];
$DiffLevel = $fetch_obj["difficultylevel"];
$Status = $fetch_obj["status"];
$AnsDescrip = $fetch_obj["ans_description"];
$QuestionsList[] = array( "SubjectID" => "$SubId",
"QuestionID" => "$QuestId",
"QuestionType" => "$QuestType",
"Question" => "$Quest",
"Answer1" => "$Ans1",
"Answer2" => "$Ans2",
"Answer3" => "$Ans3",
"Answer4" => "$Ans4",
"CorrectAnswer" => "$CorrectAns",
"Hint" => "$Hint",
"DiffLevel" => "$DiffLevel",
"Status" => "$Status",
"AnsDescription" => "$AnsDescrip");
}
$json = array("status" => 1,
"message" => "Questions list Successfully fetched",
"QuestionsList" => var_dump($QuestionsList));
/* foreach ($QuestionsList as $value) {
print_r($value);
}*/
}
else {
$json = array("status" => 0, "message" => "No Records
Found.", "query" => $select_sql);
}
}
}
mysqli_close($con);
header('Content-type: application/json');
echo json_encode($json);
?>
当sql中的限制为0、15时,它返回如下所示的数据:
如果删除sql中的限制,它将不返回任何内容,如下所示。
这是否与php中的JSON响应数据限制有关,如果是,我在哪里可以更改?我还签入了生产现场服务器,它返回了相同的结果。
请帮我解决这个问题
关于做一个
var\u dump($QuestionList)
:您的查询:
$select_sql = "SELECT * FROM `questions` WHERE `subjectid` =
'".$SubID."' LIMIT 0, 15";
无限制地:
$select_sql = "SELECT * FROM `questions` WHERE `subjectid` =
'".$SubID."'";
在限制0,15中
:
- 0是第一行的偏移量
- 15是从表返回的最大行数
$select_sql = "SELECT * FROM `questions` WHERE `subjectid` =
'".$SubID."' LIMIT 0, 15";
无限制地:
$select_sql = "SELECT * FROM `questions` WHERE `subjectid` =
'".$SubID."'";
在限制0,15中
:
- 0是第一行的偏移量
- 15是从表返回的最大行数
var\u转储($QuestionsList)时
没有限制,您得到了什么?如果您访问数据库,只需查看查询是否直接工作。@umashankard如果是,则在database@Bara“哎呀……谢谢!”!!如果我使用dovar_dump($QuestionsList);,它将返回数据,但是它是HTML格式的。如何将其转换为JSON,或者如何获取JSON格式的数据?能否请您输入完整的代码?当您执行var\u转储($QuestionsList)时,在执行$json=
之后它会去哪里
没有限制,您得到了什么?如果您访问数据库,只需查看查询是否直接工作。@umashankard如果是,则在database@Bara“哎呀……谢谢!”!!如果我使用dovar_dump($QuestionsList);,它将返回数据,但是它是HTML格式的。如何将其转换为JSON,或者如何获取JSON格式的数据?能否请您输入完整的代码?在执行$json=
之后,它会去哪里谢谢,我知道限制是什么,但我这里的问题是,如果我取消限制或将最大数字增加到16,它将不会返回任何数据,如第二个屏幕截图所示。谢谢,我知道限制的作用,但这里的问题是,如果我取消限制或将最大值增加到16,它将完全不返回任何数据,如第二个屏幕截图所示。