使用PHP+SQLSRV无法获取全部数据库记录,十月数据未显示求助
问题排查与解决方案
1. 验证查询条件准确性
- 打印
$code1的实际值,确认它与十月记录的Code字段完全一致(包括大小写、空格、特殊字符):var_dump($code1); - 直接在数据库管理工具(如SSMS)中执行替换后的查询语句,检查是否能返回十月的记录:
SELECT * FROM 你的表名 WHERE [Code]='替换成$code1的实际值'
2. 捕获SQLSRV执行错误
在sqlsrv_query后添加错误捕获代码,排查是否存在SQL执行异常:
$stm = sqlsrv_query($conn,$sql,$para,$opt); if( $stm === false ) { die( print_r( sqlsrv_errors(), true)); }
3. 核对表名与字段值
- 确认
$c变量对应的表名拼写正确,未使用错误的表。 - 若
Code字段存在隐藏空格,可修改查询语句去除前后空格:$sql = "SELECT * FROM $c WHERE LTRIM(RTRIM([Code]))=?";
4. 测试游标设置影响
暂时移除游标选项,使用默认游标执行查询,验证是否能返回所有记录:
// 移除$opt参数 $stm = sqlsrv_query($conn,$sql,$para);
5. 检查数据类型匹配
如果Code字段是数值类型,确保$code1为对应数值类型,避免类型不匹配:
$para = array((int)$code1); // 若Code是int类型
内容的提问来源于stack exchange,提问作者leo
相关产品推荐
相关产品推荐

