Не удается получить выходные параметры из хранимой процедуры SQL Server с использованием PHP - PullRequest
0 голосов
/ 15 апреля 2009

Я выполняю хранимую процедуру 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), потому что я не мог понять это. Было бы неплохо найти ответ: (

Ответы [ 3 ]

0 голосов
/ 28 апреля 2009

EDIT:

Вы пробовали ADODB

0 голосов
/ 12 июля 2011

Проверьте мой пост по этой проблеме, я использовал расширенный класс от Zend_Db_Table_Abstract. Я не использую чистый PHP, все еще используя фреймворк соответственно. Кажется, что все в порядке и работает хорошо, я даже получаю обратно набор результатов! Надеюсь, это поможет:

Выполнение хранимой процедуры MSSQL через Zend Framework

0 голосов
/ 15 апреля 2009

Я не парень по PHP, но я думаю это поможет.

Там написано:

Обратите внимание, что при получении вывода или параметр ввода / вывода, все результаты возвращаемый хранимой процедурой должен быть употребленным до возвращения значение параметра доступно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...