sql server-通过终端进行的PHP pdo-mssql外部连接失败


sql server - PHP pdo mssql external connection via terminal fails

  • Windows 7 Professional上的SQL Server 2012 Express
  • PHP 5.4
  • IIS 7.5

我打开PDO连接:

$sqlconn = "sqlsvr:server=(local)'SQLEXPRESS;database=MyDb";
$pdo = new PDO( $sqlconn, $dbuser, $dbpass );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

然后我执行一个存储过程:

$query = $pdo->prepare( "EXEC $storedProc ?" );
$query->bindParam( 1, $value );
$query->execute();
$spVals = $query->fetchAll( PDO::FETCH_ASSOC );

一切都很好,连接建立了,我得到了一个记录集。

以及我的客户,如果他从外部客户连接。但如果他使用终端连接,他就不会创纪录。连接处于打开状态,存储过程已找到但未执行。唯一不同的是,终端与SQL Server不是同一个windows域的成员。

在Sql Server配置管理器中,将激活用于网络配置的共享内存和TCP/IP。Sql Server和Sql Server Browser Services正在运行。

MSSQL已设置为远程连接。

在我看来,$db用户似乎无权通过终端执行存储过程。

但为什么呢?

我不知道,如果你知道我的问题,所以如果需要,请询问更多信息!

也许可以使用try-and-catch来查看是否存在PDO错误。我有一种感觉,客户的价值观正在发生变化。

try { $pdo = $db->prepare('blah blah'); $pdo->execute(); } catch (Exception $e) { die($e->getMessage()); }

已解决。

问题出在客户身上。如果有%20(空白),他的通信接口无法读取URL字符串。