我正在尝试使用PDO从PHP运行MSSQL存储过程。我一直这样做,但是这个SP就超时了。 SP相当复杂,需要大约4分钟才能运行。
我这样称呼它:
$setDate = '2014-01-03';
$queryMain = $coreDB->prepare("exec sp_ard :runDate");
$queryMain->bindParam("runDate",$setDate);
$queryMain->execute();
$e = $queryMain->errorInfo();
$d = $queryMain->fetchAll(PDO::FETCH_ASSOC);
print_r($e);
print_r($d);
当我运行页面时,它运行一分钟左右然后产生此错误:
Array ( [0] => 08S01 [1] => 258 [2] => [Microsoft][SQL Server Native Client 10.0]TCP Provider: Timeout error [258]. )
我知道SP工作正常。我可以直接从MSSQL管理控制台运行它。从那里跑大约需要4分钟,但它运作正常。
我试图找出如何从PHP运行它。
任何帮助都会很棒。
谢谢!
答案 0 :(得分:3)
您应该能够使用PDO配置超时。
PDO::setAttribute
public bool PDO::setAttribute ( int $attribute , mixed $value )
PDO::ATTR_TIMEOUT
:指定超时持续时间(以秒为单位)。并非所有驱动程序都支持此选项,并且它的含义可能因驱动程序而异。例如,在放弃获取可写锁之前,sqlite将等待达到此时间值,但其他驱动程序可能会将此解释为连接或读取超时间隔。
答案 1 :(得分:-2)