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

时间:2015-03-12 20:56:23

标签: php ios json parameter-passing

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

网址:http://tandemenvoy.michaeldvinci.com/forum/repliesJSON.php?rID=2绝对没有回复我。如果我将SQL查询硬编码为

"SELECT * FROM replies WHERE replyID = 2"

我得到了正确的JSON格式化请求,但是当我尝试将其作为URL中的参数传递时。只是没有显示 -

现在我这样做的原因是因为我正在研究一个横跨多个表的iOS应用程序,我需要它只显示匹配的'replyTopic'到'categoryID',我猜我是否可以使用正确的查询将categoryID附加到网址的末尾,这将是一件容易的事情

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);
?>

2 个答案:

答案 0 :(得分:0)

$rID = $GET_['rID'];

应该是

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

主要错误是你的get var中的拼写错误。 我还将你的getvar转换为整数,因为你没有使用任何准备状态。

答案 1 :(得分:0)

因为你的Mysql语句用双引号括起来,PHP会解析变量,这意味着'".$rID."'输出为&#39; 2&#39; (带单引​​号)因为PHP忽略双引号并连接单引号和数字2。

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

修改

你也可以完全忽略@steven提到的单引号:

WHERE replyID = $rID