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里的
相关产品推荐
相关产品推荐

