gpt4 book ai didi

php - 使用PHP从MYSQL获取数据没有返回结果

转载 作者:行者123 更新时间:2023-11-29 21:10:14 24 4
gpt4 key购买 nike

所以我正在使用这个教程:https://www.simplifiedcoding.net/android-mysql-tutorial-to-perform-basic-crud-operation/尝试从我的本地 MYSQL 服务器获取数据(使用 Wamp64)。我一开始遇到了未定义索引错误,我使用 isset() 语句修复了该错误。但现在它只是返回:

{"result":[]}

但是,我在该数据库的 set 列中有很多数据。这是代码:

<?php
//Getting the requested klas
$klas = isset($_GET['klas']) ? $_GET['klas'] : '';

//Importing database
require_once('dbConnect.php');

//Creating SQL query with where clause to get a specific klas
$sql = "SELECT * FROM lessen WHERE klas='$klas'";

//Getting result
$r = mysqli_query($con,$sql);

//Pushing result to an array
$result = array();
while ($row = mysqli_fetch_array($r)) {
array_push($result,array(
"id"=>$row['id'],
"klas"=>$row['klas'],
"dag"=>$row['dag'],
"lesuur"=>$row['lesuur'],
"les"=>$row['les'],
"lokaal"=>$row['lokaal']
));
}

//Displaying the array in JSON format
echo json_encode(array('result'=>$result));

mysqli_close($con);
?>

我尝试过

SELECT * FROM lessen WHERE klas='$klas'

我的数据库中的语句,它似乎返回了正确的数据。知道是什么原因造成的吗?

提前致谢!

最佳答案

第 1 点是:

isset 函数仅检查 klas 是否在 $_GET 全局数组中设置。因此,如果 $klas 为空,您的查询将返回空(不会给出错误)。

因此,请检查 $_GET 中的值以及可能的访问位置。或者您可以添加条件以避免空查询,例如 --

if (!empty($_GET['klas'])) {
// rest of the code block upto return

第 2 点是:

你已经提到如果你回显它返回的sql

SELECT * FROM lessen WHERE klas=''{"result":[]} 

这里的第二部分(JSON)来自回显代码末尾的结果。因此,对于第一部分(即回显 $sql),我们看到 klas=''。这实际上涉及到上面提到的第 1 点

所以最后您必须检查为什么 $_GET 处的值显示为空白。这将解决您的问题。

更新:

来自@GeeSplit的评论对于请求

“GET/JSON-parsing/getKlas.php?=3ECA”

$_GET['klas'] 中不会有任何内容,因为 url 中的查询字符串不包含任何键。

因此,您必须更改调用文件的源。或者您可以更改获取 klas 值的方式。

示例:

$tmpKlas = $_SERVER['QUERY_STRING'];
$klas = ltrim($tmpKlas, '=');

您的其余代码将起作用。

关于php - 使用PHP从MYSQL获取数据没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36446835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com