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

ng-repeat无法读取SQL查询返回的JSON结果,请求问题排查

问题分析与解决方案

首先,我一眼就看到了核心问题:你连接的是SQL Server数据库(从主机名den1.mssql5.gear.host能明确判断),但你的PHP代码却用了mysqli_*系列函数——这个扩展是专门给MySQL用的,根本没法连接SQL Server!这就是页面空白、控制台没报错的根源,因为mysqli连不上SQL Server,而你又没开启错误提示,自然看不到任何问题线索。

下面给你分步解决的方案:


1. 先开启PHP错误显示,快速定位问题

在select.php最顶部加上这段代码,强制显示所有错误,这样能立刻看到问题所在:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// 下面是你的原有代码
$connect = mysqli_connect("den1.mssql5.gear.host", "testiranje", "nijebitno@", "testiranje");
// ... 剩余代码

刷新页面后,你大概率会看到类似Call to undefined function for SQL Server的错误,这就坐实了扩展不匹配的问题。


2. 改用SQL Server专用的PHP扩展连接数据库

PHP连接SQL Server需要用到sqlsrv扩展(或者PDO的pdo_sqlsrv驱动),先确认你的PHP环境已经安装了这个扩展(本地环境要在php.ini里开启对应dll;虚拟主机的话,联系服务商确认是否支持)。

修改后的select.php代码(用sqlsrv扩展):

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$serverName = "den1.mssql5.gear.host";
$connectionOptions = array(
    "Database" => "testiranje",
    "Uid" => "testiranje",
    "PWD" => "nijebitno@"
);
// 建立SQL Server连接
$connect = sqlsrv_connect($serverName, $connectionOptions);
if ($connect === false) {
    die(print_r(sqlsrv_errors(), true));
}

$output = array();
$query = "SELECT * FROM dbo.tbl_user";
$result = sqlsrv_query($connect, $query);
if ($result === false) {
    die(print_r(sqlsrv_errors(), true));
}

if (sqlsrv_has_rows($result)) {
    while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
        $output[] = $row;
    }
    // 确保JSON输出编码正确,避免乱码
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($output);
} else {
    echo json_encode(array());
}

// 关闭连接
sqlsrv_close($connect);
?>

3. 修复AngularJS的废弃API问题

你的AngularJS代码里用了.success()方法,这个方法在AngularJS 1.5之后已经被废弃,建议改用.then()处理异步请求,避免潜在兼容问题:
修改index.html里的

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:07:20