Я выполняю хранимую процедуру SQL Server, которая должна возвращать выходной параметр (ErrCode), а также набор результатов.
Я вызываю процедуру из PHP, используя следующий код, но до сих пор не удалось получить выходной параметр:
$stmt = mssql_init("addFaculty", $this->db);
mssql_bind($stmt, "@FacultyID", $FacultyID, SQLCHAR);
...imagine other parameters here...
mssql_bind($stmt, "@ErrCode", &$ErrCode, SQLINT1, TRUE, FALSE, 1);
$result = mssql_execute($stmt);
echo $ErrCode
$ ErrCode всегда отображается как 0, даже если он должен возвращать «1» или «2». Однако когда я выполняю процедуру в SQL Server Studio, на вкладке «Сообщения» будет правильно отображаться «1» или «2».
В ходе исследования я обнаружил одно предположение, в котором говорится, что сначала вы должны использовать mssql_next_result()
, чтобы получить доступ к выходным параметрам. Я попробовал это, но он просто вернул PHP
«Предупреждение: mssql_next_result (): указанный аргумент не является допустимым ресурсом MS SQL_result»
Я также нашел ссылку на похожую проблему в этой теме , но не нашел реального разрешения.
Как и человек в этой теме, я использую Linux (CentOS) с PHP5 и MS SQL Server 2005.
У кого-нибудь есть предложения по этому поводу? У меня была такая проблема и в предыдущем проекте, и в итоге я просто отказался от использования выходных параметров (и вместо этого выполнил всю мою проверку на ошибки в PHP), потому что я не мог понять это. Было бы неплохо найти ответ: (