You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Webservice返回空结果求助:MySQL视频列表无法获取

排查PHP接口返回空视频列表的问题

我之前遇到过类似的情况,你的代码逻辑看起来没大问题,但有几个容易被忽略的细节可能导致这个现象,一步步来排查:

1. 先确认数据库查询是否真的执行成功

你的getAllVideos方法里,如果$this->conn->query()执行失败(比如语法错误、连接异常),会直接跳过结果处理并返回空数组,但你没有捕获这个错误,根本不知道查询有没有出问题。可以修改方法,加上错误日志和失败判断:

public function getAllVideos(){
    $videos = array();
    // 先检查数据库连接是否有效
    if(!$this->conn){
        error_log("数据库连接失败: " . $this->conn->error);
        return false;
    }
    
    $result = $this->conn->query("SELECT * FROM tbl_videos");
    if ($result) {
        // 先打印行数,确认是否有数据返回
        error_log("查询到的视频行数: " . $result->num_rows);
        
        while ($row = $result->fetch_assoc()) {
            $row_array["tbl_videos_id"] = $row['tbl_videos_id'];
            $row_array["video_path"] = $row['video_path'];
            $row_array["title"] = $row['title'];
            $row_array["description"] = $row['description'];
            $row_array["video_cover_path"] = $row['video_cover_path'];
            array_push($videos, $row_array);
        }
        $result->free();
        return $videos;
    } else {
        // 捕获查询错误,写入日志
        error_log("查询失败: " . $this->conn->error);
        return false;
    }
}

然后查看服务器的PHP错误日志,或者在接口开头临时开启错误输出:

error_reporting(E_ALL);
ini_set('display_errors', 1);

这样就能知道查询是真的没数据,还是执行过程中出了故障。

2. 检查数据库连接的一致性

你在phpMyAdmin能查到数据,但PHP代码可能连接到了不同的数据库(比如测试库和生产库搞混了),或者使用的数据库用户没有SELECT权限。可以在DB_Functions的连接代码里,打印当前连接的数据库名:

// 数据库连接完成后添加
echo "当前连接的数据库: " . $this->conn->select_db("你的数据库名称");

确认和phpMyAdmin操作的是同一个库。

3. 检查字符集匹配问题

如果数据库的字符集和PHP连接时的字符集不匹配,可能会导致查询结果为空(尤其是表名/字段名包含特殊字符时)。在数据库连接成功后,添加字符集设置:

$this->conn->set_charset("utf8mb4"); // 根据你的数据库实际字符集调整,比如utf8

4. 调试接口返回的具体内容

在get_all_videos.php里,先打印$videos的内容,看看是不是真的为空:

$videos = $db -> getAllVideos();
var_dump($videos); // 临时添加,测试后删除

如果var_dump显示有数据,但json输出为空,可能是数据里有无法序列化的字符,这时候可以给json_encode加上参数:

echo json_encode($response, JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR);

按照这些步骤排查,应该能快速定位问题所在。

内容的提问来源于stack exchange,提问作者Sandip Armal Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:32:36