从 sqlsrv_query 更改 QueryTimeout
Changing QueryTimeout from sqlsrv_query
我遇到了一个缓慢的 运行 查询问题,有时需要超过 30 秒才能执行,因此我想增加我的 sqlsrv_query 超时时间。
Fatal error: Maximum execution time of 30 seconds exceeded
我的 PHP 语法有问题,因为示例:http://php.net/manual/en/function.sqlsrv-query.php 对我来说没有意义。
目前我的连接/设置如下:
$testServer = 'IP\servername,PORT';
$testDetails = array('Database' => 'DBNAME', 'UID' => 'USERNAME', 'PWD' => 'Password');
$testConnect = sqlsrv_connect($testServer, $testDetails);
我的理解是我需要在 sqlsrv_connect
中将超时详细信息作为参数传递,但我的语法不正确。
(我已经尽可能地优化了查询,不幸的是考虑到数据库 table 的设计,我无法在不到 30 秒的时间内始终如一地使其达到 return。)
这个错误实际上是一个PHP错误,与sqlsrv驱动无关;默认情况下,sqlsrv 驱动程序将 运行 查询直到收到结果。
Key: QueryTimeout
Value: A positive integer value
Description: Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
(emphasis mine)
来源:Options parameter - sqlsrv_query (php.net)
错误是 php.ini 文件中定义的 max_execution_time - 默认 30 秒。当脚本 运行 超过 30 秒时,解析器终止脚本,抛出致命错误。
要解决此错误,您可以更改 php.ini 文件中的 max_execution_time
设置,或者在脚本顶部添加:
ini_set("max_execution_time", value); //The value will only be changed for this script!
其中 value
是您希望脚本 运行 的最长时间 以秒为单位 。
由于您的问题是询问有关设置查询超时的问题,其语法为:
$result = sqlsrv_query($conn, $query, $params, array("QueryTimeout" => 30));
其中,30
是您希望查询 运行 的最长时间(以秒为单位)。
我遇到了一个缓慢的 运行 查询问题,有时需要超过 30 秒才能执行,因此我想增加我的 sqlsrv_query 超时时间。
Fatal error: Maximum execution time of 30 seconds exceeded
我的 PHP 语法有问题,因为示例:http://php.net/manual/en/function.sqlsrv-query.php 对我来说没有意义。
目前我的连接/设置如下:
$testServer = 'IP\servername,PORT';
$testDetails = array('Database' => 'DBNAME', 'UID' => 'USERNAME', 'PWD' => 'Password');
$testConnect = sqlsrv_connect($testServer, $testDetails);
我的理解是我需要在 sqlsrv_connect
中将超时详细信息作为参数传递,但我的语法不正确。
(我已经尽可能地优化了查询,不幸的是考虑到数据库 table 的设计,我无法在不到 30 秒的时间内始终如一地使其达到 return。)
这个错误实际上是一个PHP错误,与sqlsrv驱动无关;默认情况下,sqlsrv 驱动程序将 运行 查询直到收到结果。
Key: QueryTimeout
Value: A positive integer value
Description: Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
(emphasis mine)
来源:Options parameter - sqlsrv_query (php.net)
错误是 php.ini 文件中定义的 max_execution_time - 默认 30 秒。当脚本 运行 超过 30 秒时,解析器终止脚本,抛出致命错误。
要解决此错误,您可以更改 php.ini 文件中的 max_execution_time
设置,或者在脚本顶部添加:
ini_set("max_execution_time", value); //The value will only be changed for this script!
其中 value
是您希望脚本 运行 的最长时间 以秒为单位 。
由于您的问题是询问有关设置查询超时的问题,其语法为:
$result = sqlsrv_query($conn, $query, $params, array("QueryTimeout" => 30));
其中,30
是您希望查询 运行 的最长时间(以秒为单位)。