Как вызвать удаленные функции в API sqlsrv в PHP? - PullRequest
1 голос
/ 06 марта 2011

Это в значительной степени вопрос. Я сделал хранимую функцию, которая возвращает bigint, и я хочу, чтобы возвращаемое значение было сохранено в переменной PHP. Скрипт использует API sqlsrv (поскольку mssql не работает с SQL Server 2008). Как мне это сделать? Я нигде не могу найти документацию, и похоже, что процедура вызова не работает, как и exec.

Ответы [ 3 ]

0 голосов
/ 06 марта 2011
$stmt = sqlsrv_query($this->conn, $sql, $params);
if( $stmt == false)
{
      print_r( sqlsrv_errors());
}else{
     $result_set = sqlsrv_fetch_array($stmt);
     var_dump($result_set);
}

Нет ???

0 голосов
/ 08 марта 2011

Я выяснил ответ.

$query = "SELECT functionname(?,?,...,?) AS alias";
$bindvars = array($bindvar0,...,$bindvarn);
$resultset = sqlsrv_query($query, $connection, $bindvars);
$alias = sqlsrv_fetch_array($resultset);

И мы получаем результат с помощью $ alias ['alias'].

0 голосов
/ 06 марта 2011

Пользовательские функции вызываются по запросу значения.Это может быть запрос SQL или команда SET.

Пример:

SET @myVariable = MyUserDefinedFunction(@parameter)
SELECT MyUserDefinedFunction(@parameter2),@myVariable

Вот и все.Теперь в этом примере вы можете получить доступ к результату запроса, как и в любом другом запросе.

Кстати, в следующий раз, когда вы зададите вопрос, будьте более точны:

  • Это пользовательские функции или хранимые процедуры?
  • Какой тип API вы используете?
  • Возможно, какой-то код?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...