我打开一个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无权通过终端执行存储过程。
但为什么?
我不知道,如果您对我的问题有所了解,请在需要时提出更多信息!
答案 0 :(得分:0)
也许使用try并catch来查看是否存在PDO错误。我觉得客户的价值正在发生变化。
try {
$pdo = $db->prepare('blah blah');
$pdo->execute();
} catch (Exception $e) {
die($e->getMessage());
}
答案 1 :(得分:0)
解决。
问题在于客户。他的通讯界面无法读取URL字符串,如果有%20(空白)的话。