Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Slim REST API在调用get函数后返回null_Php_Rest_Slim - Fatal编程技术网

PHP Slim REST API在调用get函数后返回null

PHP Slim REST API在调用get函数后返回null,php,rest,slim,Php,Rest,Slim,我已经使用PHP Slim开发了一个简单的REST API,并实现了一个简单的函数,该函数将在匹配专辑名和REST调用时返回曲目列表 这是我用来进行rest调用的index.php文件 这是getTracksByName函数,用于在匹配唱片集名称后返回列表a曲目 public function getTracksByName($album_keyword) { $stmt = $this->conn->prepare( "SELECT `album`.albu

我已经使用PHP Slim开发了一个简单的REST API,并实现了一个简单的函数,该函数将在匹配专辑名和REST调用时返回曲目列表

这是我用来进行rest调用的index.php文件

这是getTracksByName函数,用于在匹配唱片集名称后返回列表a曲目

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查询从

。。。你叫什么名字

。。。你喜欢什么

它可以工作,但由于某些原因,它不能处理以下查询

。。。你叫什么名字

我对PHP绝对是新手,任何形式的帮助都将不胜感激

$stmt->bind_parami,$album_关键字;绑定INTEGER类型的参数。更改为$stmt->bind_参数,$album_关键字;绑定字符串类型的参数


在准备好的语句代码中有两个潜在问题

首先,告诉语句参数是int:

$stmt->bind_param("i", $album_keyword);
i表示整数。当你想要一个字符串s时

第二个问题是,在准备好的语句中使用LIKE时,仍然需要在标准LIKE中使用%符号

例如:

$stmt->bind_param("s", "%$album_keyword%");
$stmt->bind_param("s", "%$album_keyword%");