将参数附加到 PHP URL 不返回任何内容,但硬编码工作完美

Appending parameters to PHP URL is not returning anything, but hard coded works perfectly

好的,所以这里什么都没有。

URL: http://tandemenvoy.michaeldvinci.com/forum/repliesJSON.php?rID=2 returns 我一无所有。如果我将 SQL 查询硬编码为

"SELECT * FROM replies WHERE replyID = 2"

我得到了正确的 JSON 格式的请求,但是当我尝试将它作为参数传递给 URL 时。什么都不显示 -

现在我这样做的原因是因为我正在开发一个横跨多个表的 iOS 应用程序,我需要它只显示匹配的“replyTopic”到“categoryID”和“我”我猜如果我可以使用正确的查询将类别 ID 附加到 url 的末尾,那会容易得多

repliesJSON.php:

<?php

$con=mysqli_connect("localhost","","","");

if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$rID = $GET_['rID'];

$sql = "SELECT * FROM replies WHERE replyID = '".$rID."' ";

if ($result = mysqli_query($con, $sql))
{
    $resultArray = array();
    $tempArray = array();

    while($row = $result->fetch_object())
    {
        $tempArray = $row;
        array_push($resultArray, $tempArray);
    }

    echo json_encode($resultArray);
}

mysqli_close($con);
?>
$rID = $GET_['rID'];

应该是

$rID = (int)$_GET['rID'];

主要错误是您的 get var 中的拼写错误。 我另外将您的 getvar 转换为整数,因为您没有使用任何准备语句。

因为您的 Mysql 语句用双引号括起来,PHP 将解析它的变量,这意味着 '".$rID."' 输出为 '2'(单引号仍然存在)因为 PHP 忽略双引号并将单引号和数字 2 连接起来。

只需将:WHERE replyID = '".$rID."' 更改为: WHERE replyID = '$rID' 即可解决此问题。

编辑:

您也可以像@steven 提到的那样完全省略单引号:

WHERE replyID = $rID