PHP 函数总是返回 false

标签 php mysql json

我想弄清楚为什么返回的结果总是false

SQL 和 PHP 代码如下:

public function getAlbumList($userID){
    $albumIDs= mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'");
    //$albums = mysql_query("SELECT albums.* FROM albums WHERE albumAccess.userID = '$userID' AND albumAcess.albumID = albums.albumID");

    if($albumIDs){
        $albums=array();

        while($r = mysql_fetch_array($albumsIDs)){
            $albums[]=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");     
        }
        return mysql_fetch_array($albums);

    }else{
        return false;
    }

}

获取结果并将其传递给 android 应用程序的 PHP 代码是这样的:

$userID=$_POST['userID'];

        $albumList = $db->getAlbumList($userID);

        if($albumList){
            $response["success"]=1;
            $response['album']=array();     
            while($r = mysql_fetch_assoc($albumList)){
                $response['album'][]= $r;                   
            }

            header('Content-type: text/json');
            echo json_encode($response);

        } else {
            //album list failed to be loaded
            $response["error"]=2;
            $response["error_msg"]="Error Loading Album List. Please try again later.";

            header('Content-type: text/json');
            echo json_encode($response);
        }           

当我检查返回内容的日志时,我总是收到错误消息

"Error loading album list"

但是,我只有在尝试返回数组时才会得到它。如果我只是返回 true 而没有使用第二个 SQL 请求,它会返回 true。

最佳答案

您还可以尝试使用 JOIN 或 SUBQUERY:

public function getAlbumList($userID){
    $albumIDs= mysql_query("SELECT *
                            FROM albums
                            WHERE albumID IN (
                               SELECT albumID FROM albumAccess WHERE userID='$userID'
                            )");

    if(mysql_numrows($albumIDs) > 0){
        $albums=array();

        while($r = mysql_fetch_array($albumsIDs)){
            $albums[] = $r;    
        }

        return $albums;
    }

    return false;
}

PHP代码:

    $albumList = $db->getAlbumList($userID);

    if($albumList){
        $response["success"]=1;
        $response['album'] = $albumList;
    } else {
        //album list failed to be loaded
        $response["error"]=2;
        $response["error_msg"]="Error Loading Album List. Please try again later.";
    }   
    header('Content-type: text/json');
    echo json_encode($response);

关于PHP 函数总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300072/

相关文章:

sql - 从多个连接表创建一个结果集;列由查找表组成

javascript - npm install -SE 带有次要版本符号

java - 如何在JSP页面中循环JSONArray并在div标签中显示每条记录?

javascript - JSON.parse 失败

php - sh : ffmpeg: command not found using php in online

php - 从 Linux、PHP 连接到 SQL Server

php - Python POST 文件到 PHP

php - php一次插入两个查询时出错

php - 如果表单上出现错误,则在提交后显示下拉列表的多个选定值

MYSQL - 聚合时指定分隔符(group_by)?