Вызов хранимой процедуры из PHP с использованием PDO на MSSQL Server с использованием параметров INPUT

Это не работает:

  $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, который не работал с и без фигурных скобок, и т. Д. Я знаю, что некоторые скажут, ну просто сделайте так, как это работает? Проблема в том, что я портирую существующее приложение с сервера IIS с помощью библиотеки sqlsrv_query на сервер Linux.

Все вызовы базы данных в приложении написаны в функциях, которые используют этот метод: {call wcweb_UserInfo (?)} .. Ни одно из имен параметров не указано, поэтому мне придется изменить каждый вызов базы данных, чтобы включить имена параметров. У меня сложилось впечатление, что библиотека PDO для PHP5 может выполнять такие же вызовы?

Помогите! Есть ли что-то, что я делаю неправильно, или это просто, что PDO можетделать такие звонки?

Ответы на вопрос(1)

Ваш ответ на вопрос