如何设置从PHP Sqlsrv执行查询的超时

如何设置从PHP Sqlsrv执行查询的超时,php,sql-server,sqlsrv,Php,Sql Server,Sqlsrv,如何在SqlSrv PHP中设置EXEC查询或存储过程的超时 因为我正在使用PHP调用SQL Server存储过程 前 "EXEC SP_Name" 有时它花费的时间太长,因此PHP页面显示500个内部服务器错误 如果可以设置SP停止的时间限制,那么我将显示错误说明等 如何解决此问题 提前感谢。在php.ini文件集中 max_execution_time = 60--or whatever time you wish 有关更多详细信息,请参阅此@Jayasurya Satheesh的答案指

如何在SqlSrv PHP中设置EXEC查询或存储过程的超时

因为我正在使用PHP调用SQL Server存储过程

"EXEC SP_Name"
有时它花费的时间太长,因此PHP页面显示500个内部服务器错误

如果可以设置SP停止的时间限制,那么我将显示错误说明等

如何解决此问题


提前感谢。

在php.ini文件集中

max_execution_time = 60--or whatever time you wish

有关更多详细信息,请参阅此

@Jayasurya Satheesh的答案指的是任何php执行时间,但不是db query exec时间。实际上,php缺少一种简单的方法来控制db查询的执行时间

它更多的是在DB/SQL设置方面。如果您可以在SQL Server端定义超时,这将向PHP返回“TimeOut”

无论如何,您可以定义set_time_limit(25)(其中25是您想要的秒数),您可以将其放在SQL EXEC之前的php代码中,如果您想要为特定的php文件设置_time_limit,则无需处理php.ini。因此,如果查询耗时超过25秒,php将停止执行


请记住,set_time_limit()不会影响其他php脚本,它仅适用于放置它的当前文件

如果可能,请在sqlsrv连接字符串或执行中设置超时,我已尝试以下代码$result=sqlsrv_query($conn,$query,$params,array(“QueryTimeout”=>30));$conn=sqlsrv_connect($host,array(“UID”=>$user,“PWD”=>$PWD,“Database”=>“DBName”,“LoginTimeout”=>5));加载也需要很长时间。我想你把两个语句的顺序都颠倒了,不是吗?首先$conn=sqlsrv_connect(…),然后是sqlsrv_query($conn…)?是的,正确,我使用的是第一个连接和执行查询