我正在运行PHP脚本从命令行对SQL Server 2005使用MS驱动程序的PHP和获取超时。查询大约需要2分钟从SQL Server Management Studio中返回> 300,000行。对SQL Server 2005的PHP是超时
有脚本多个查询,并为每一个我做了sqlsrv_connect()
,执行查询,然后sqlsrv_free_stmt()
和sqlsrv_errors():
sqlsrv_close()
输出
Array
(
[0] => Array
(
[0] => 08S01
[SQLSTATE] => 08S01
[1] => 258
[code] => 258
[2] => [Microsoft][SQL Native Client]Shared Memory Provider: Timeout error [258].
[message] => [Microsoft][SQL Native Client]Shared Memory Provider: Timeout error [258].
)
[1] => Array
(
[0] => 08S01
[SQLSTATE] => 08S01
[1] => 258
[code] => 258
[2] => [Microsoft][SQL Native Client]Communication link failure
[message] => [Microsoft][SQL Native Client]Communication link failure
)
[2] => Array
(
[0] => 08S01
[SQLSTATE] => 08S01
[1] => 0
[code] => 0
[2] => [Microsoft][SQL Native Client]Communication link failure
[message] => [Microsoft][SQL Native Client]Communication link failure
)
)
我搬到PDO为SQL Server,Oracle和ODBC(为Teradata连接)。 我只有两个问题: 用于PHP的MS SQL Server驱动程序用于返回受查询影响的行(通过在表加载前后执行count(*)来解决此问题) PDO与Teradata的ODBC连接varchar字段大于400字节会返回一个空字符串,并且查询后面的所有字段也会被清空。我认为这是一个显然固定的旧bug,但我升级到PHP 5.3.1并仍然遇到它。解决方法是将所有更长的varchar字段转换为更短的长度。 – Zan 2010-03-16 00:22:39