带MySQL的PHP​​仅为Table的第一行返回正确的结果

时间:2012-02-07 02:38:36

标签: php mysql

我最近得到了一个PHP脚本,我写的是将数据返回到我的android java代码,不幸的是,当我调用表格的第一行时,脚本只会返回数据。

我的表格格式如下:

1 Jared Jones
2 Karla Cross
3 Jasmine Smith
4 Vince Stevens

数字对应于UserId,其他2个属性为FName和LName。

我执行MySQL脚本的php脚本如下:

    <?php 
mysql_connect("my database credentials go here");
mysql_select_db("a2275354_gtchose");
$sql=mysql_query("select FName,LName from Test where UserId ='".$_REQUEST['userId']."' ");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>

我不确定为什么我收到结果的唯一时间是当我将1作为userId传递给查询时。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:0)

尝试删除userId周围的引号。它是一个数字字段

$sql=mysql_query("select FName,LName from Test where UserId =".$_REQUEST['userId']);

答案 1 :(得分:0)

我不确定这是否有用,但你可以尝试一下。在您的字段fname和lname

中添加括号
$sql=mysql_query("Select (Fname,LName) from Test where UserId='".$_REQUEST['userID']."' ");

答案 2 :(得分:0)

你没有在while循环之前声明你的数组...所以把:

$output = array();
while之前

,所以它应该是:

$output = array();
$sql=mysql_query(...);
while($row=mysql_fetch_assoc($sql))
  $output[]=$row;

另外,正如其他人指出的那样,这对于sql注入来说是不容易的,所以使用mysql_real_escape_string

另外,如果你的id是数字的,你应该真的删除它周围的单引号......虽然无所谓它应该返回结果...