查询未在函数中返回正确的结果

时间:2011-10-22 12:39:31

标签: php mysql function

以下功能设置为:

  1. 从我的数据库中收集user_id,如下所示WHERE subscriber = '$user'。然后:
  2. 返回user_id可能存在的多个值。
  3. 但是,当我尝试使用此功能时,它只收集了一个数组,其中包含键0和值user_id。出于显而易见的原因,我希望数组包含数据库user_id列中的数值,其中包含键user_id

    function get_subscribitions($user)
    {
        $user = mysql_real_escape_string ($user);
    
        $sql = "SELECT 'user_id' FROM `subscribe` WHERE subscriber = '$user'";
    
        $result = mysql_query($sql);
    
        $rows = array();
    
        while ($row = mysql_fetch_assoc($result)) {
            $rows[] = $row;
        }
    
        mysql_free_result($result);
    
        return $rows;
    }
    

    任何人都可以确定我在哪里犯错导致这些相关问题吗?

    任何帮助表示感谢,提前谢谢!

2 个答案:

答案 0 :(得分:3)

尝试改为

$sql = "SELECT user_id FROM `subscribe` WHERE subscriber = '$user'";

请注意user_id

周围缺少单引号

答案 1 :(得分:3)

应该是:

 function get_subscribitions($user)
{

$user = mysql_real_escape_string ($user);

  $sql = "SELECT user_id FROM `subscribe` WHERE subscriber = '$user'";

 $result = mysql_query($sql);

  $rows = array();

  while ($row = mysql_fetch_assoc($result)) {
      $rows[] = $row['user_id'];
  }

  mysql_free_result($result);

  return $rows;
}

查询中有不必要的引号,而您没有正确读取$ row数组