将参数附加到 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
好的,所以这里什么都没有。
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