これは動作しません:
$dbh = new PDO("dblib:host=xxxx;dbname=xxx", "xxxxx", "xxxxx");
$sth = $dbh->prepare("{exec wcweb_UserInfo(?)}");
$sth->bindParam(1, $name);
$sth->execute();
while($result = $sth->fetch(PDO::FETCH_ASSOC)) {
var_dump($result);
}
これも機能しません:
$dbh = new PDO("dblib:host=xxxxx;dbname=xxxx", "xxxxx", "xxxx");
$sth = $dbh->prepare("{call wcweb_UserInfo(?)}");
$sth->bindParam(1, $name);
$sth->execute();
while($result = $sth->fetch(PDO::FETCH_ASSOC)) {
var_dump($result);
}
これは機能します:
$dbh = new PDO("dblib:host=xxxxx;dbname=xxxx", "xxxxx", "xxxx");
$sth = $dbh->prepare("exec wcweb_UserInfo @userid=?");
$sth->bindParam(1, $name);
$sth->execute();
while($result = $sth->fetch(PDO::FETCH_ASSOC)) {
var_dump($result);
}
中括弧の有無にかかわらず機能しなかった2を使用して上記を試しました。.. 問題は、sqlsrv_query ライブラリを使用して既存のアプリケーションを IIS サーバーから Linux サーバーに移植していることです。
アプリ内のすべてのデータベース呼び出しは、{call wcweb_UserInfo(?)} メソッドを使用する関数で記述されています。パラメーター名は指定されていないため、すべてのデータベース呼び出しを変更してパラメーター名を含める必要があります。私は、PHP5 の PDO ライブラリが同じ種類の呼び出しを実行できるという印象を受けましたか?
ヘルプ!私が間違っていることがありますか、それとも PDO がそのような呼び出しを行うことができないということですか?