【问题标题】:connecting to SQL Server via PHP is failing通过 PHP 连接到 SQL Server 失败
【发布时间】:2015-06-02 06:14:21
【问题描述】:

我有一个使用 PDO 创建到数据库的 2 个连接的脚本。

第一个连接到 SQL Server,第二个连接到 MySQL。

该脚本直到昨天都运行良好。我想不出有什么可以改变的。但现在脚本失败了

这是我在尝试连接到 SQL Server 时遇到的异常

SQLSTATE[IMSSP]: Invalid value 1 specified for option PDO::SQLSRV_ATTR_QUERY_TIMEOUT.

我在 Apache 2.4.12 上运行 PHP 6.6

我查看了脚本,连接应该没有问题。

这是我的连接字符串

$connString = 'sqlsrv:Server=MyIP,1433;Database=MyDBname';

$pdo_opt[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$pdo_opt[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC;

$pdo_opt[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES utf8';
$pdo_opt[PDO::MYSQL_ATTR_LOCAL_INFILE] = true;

$pdo_opt[PDO::SQLSRV_ATTR_ENCODING] = PDO::SQLSRV_ENCODING_UTF8;

try {
    $pdo = new PDO($connString, $username, $password, $pdo_opt);
} catch(Exception $e){

    exit($e->getMessage());
}

我该如何解决这个问题?或者我应该从哪里开始调查这个问题?

【问题讨论】:

  • 你在哪里使用SQLSRV_ATTR_QUERY_TIMEOUT
  • 另外,脚本所在的网络和 SQL 服务器所在的网络相同或不同的网络。当有人注意到一些 SQL 流量通过时,是否有可能关闭一些帖子?
  • 我通过添加$pdo_opt[PDO::SQLSRV_ATTR_QUERY_TIMEOUT] = 30; 修复了它但是为什么它突然停止工作?

标签: php mysql sql-server pdo


【解决方案1】:

我想通了。我通过添加这行代码来修复它

$pdo_opt[PDO::SQLSRV_ATTR_QUERY_TIMEOUT] = 30;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-24
    相关资源
    最近更新 更多