Вызов хранимой процедуры из 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 можетделать такие звонки?