不幸的是,由于我不能分享我公司的代码,所以我会有点含糊,所以我提前道歉。我发现存储过程(调用其他存储过程)在我们的 MS SQL Server 数据库中存储员工的方式存在差异。当直接在数据库上运行(使用我的 PHPStorm 控制台)时,当尝试添加任意数量的员工时,它会正确地添加他们。然而,当通过 PHP 运行时,实际上只插入了一个随机数。我的 PHP 设置类似于:$con = sqlsrv_connect($host . ',' . $port, [ "Database" => $database, "UID" => $user, "PWD" => $password, "ReturnDatesAsStrings" => true, "CharacterSet" => "UTF-8"]);$sql = "EXEC EmployeeAdd '[{ json data here }]'"$stmt = sqlsrv_query($con, $sql);我也尝试了 PDO 库并看到了相同的结果。sqlsrv有没有人在使用 PHP或PDO库运行嵌套存储过程时遇到问题?如果是这样,你做了什么来解决这个问题?提前致谢。
1 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
这好有趣!我们有一些print
陈述导致了这个问题。删除它们解决了问题,我能够按预期导入员工。感谢您的帮助@Zhorov。
更多信息:默认情况下,PHP 设置WarningsReturnAsErrors
为打开。因为 print 语句生成01000
带有错误代码的警告#0
,PHP 将其视为错误并立即停止执行。要在不删除print
语句的情况下解决此问题,您可以:
在 PHP 脚本中,设置
sqlsrv_configure("WarningsReturnAsErrors", 0);
更新您的 php.ini 以包含
sqlsrv.WarningsReturnAsErrors = 0
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消