【发布时间】:2015-03-23 17:42:15
【问题描述】:
我使用 PHP Slim 开发了一个简单的 REST API,并实现了一个简单的函数,该函数将在匹配专辑名称时返回一个曲目列表,并通过思想 REST 调用。
这是我用来进行休息调用的 index.php 文件,
http://localhost/my_gallery/v1/tracks/:name
$app->get('/tracks/:name', 'authenticate', function($album_keyword) {
global $user_id;
$response = array();
$db = new DbHandler();
// fetch task
$result = $db->getTracksByName($album_keyword);
if ($result != NULL) {
$response["error"] = false;
$response["album_name"] = $result["album_name"];
$response["track_artist"] = $result["track_artist"];
$response["track_name"] = $result["track_name"];
echoRespnse(200, $response);
} else {
$response["error"] = true;
$response["message"] = "The requested resource doesn't exists";
echoRespnse(404, $response);
}
});
这是 getTracksByName() 函数,用于在匹配专辑名称后返回曲目列表,
public function getTracksByName($album_keyword) {
$stmt = $this->conn->prepare(
"SELECT `album`.album_name, `track`.track_artist, `track`.track_name "
. "FROM `category_album` ,`album` , `track` "
. "where `album`.album_id=`track`.album_id AND`album`.`album_name` LIKE ?");
$stmt->bind_param("i", $album_keyword);
if ($stmt->execute()) {
$res = array();
$stmt->bind_result($album_name, $track_artist, $track_name);
$stmt->fetch();
$res["album_name"] = $album_name;
$res["track_artist"] = $track_artist;
$res["track_name"] = $track_name;
$stmt->close();
return $res;
} else {
return NULL;
}
}
现在调用 REST 后,它会为每个轨道项目返回空值。顺便提一下,我已经从
更改了 SQL 查询... ANDalbum.album_name 喜欢?
到
... ANDalbum.album_id 喜欢?
它的作品,但由于某种原因,它不适用于以下查询
... ANDalbum.album_name 喜欢?
我对 PHP 完全陌生,如果能提供任何帮助,我将不胜感激。
【问题讨论】: