通过终端的PHP pdo mssql外部连接失败

时间:2014-04-23 16:45:37

标签: php sql-server pdo terminal remote-access

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

我打开一个PDO-Connection:

$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服务正在运行。

MSSQL设置为远程连接。

找我,好像$ dbuser无权通过终端执行存储过程。

但为什么?

我不知道,如果您对我的问题有所了解,请在需要时提出更多信息!

2 个答案:

答案 0 :(得分:0)

也许使用try并catch来查看是否存在PDO错误。我觉得客户的价值正在发生变化。

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

答案 1 :(得分:0)

解决。

问题在于客户。他的通讯界面无法读取URL字符串,如果有%20(空白)的话。