PhP MySQL“WHERE”查询返回null /为空

时间:2017-10-09 11:17:22

标签: php mysql arrays database

好的,嗨。所以我试图创建一个使用MySQL数据库生成RecylerView的Android应用程序。要获取数据,我在同一台服务器上使用PhP文件存储。但我想扩展App一点。现在,如果我调用此行:$query = 'SELECT * FROM items WHERE catid = "$catid"';,结果为空。

奇怪的事情是:如果我在PhPMyAdmin中输入查询,它会显示正确的结果。

这是完整的PHP文件(删除了数据库登录)(安全强制免责声明:我的英语不流利,请原谅一些错字c:)

编辑:我认为有些人误解了:问题不在Android中......我很有信心。而“生成”..只是忽略我不知道我可以使用的其他Word。所以问题只在PHP文件中

<?php
$connection = mysqli_connect("","","","");

$type = $_GET["t"];

if($type == "categorys"){
    $query = "SELECT * FROM categorys";
}else{
    $catid = $_GET["id"];
    $query = 'SELECT * FROM items WHERE catid = "$catid"';
}

$result = mysqli_query($connection,$query);


while ($row = mysqli_fetch_assoc($result)) {
    $array[] = $row;
}

header('Content-Type:Application/json');
echo json_encode($array);
?>

2 个答案:

答案 0 :(得分:1)

使用double-quotes

这样写
$query = "SELECT * FROM items WHERE catid = $catid";

如果catid是一个字符串,那么:

$query = "SELECT * FROM items WHERE catid = '$catid'";

无论如何,你应该使用prepared statement

答案 1 :(得分:0)

试试这个:

$query = "SELECT * FROM items WHERE catid = '$catid'";

或:

$query = "SELECT * FROM items WHERE catid = '".$catid."'";