2013-04-26 1 views
0

У меня есть процедура SQL Server, которая вставляет и отправляет электронное письмо получателю. Процедура работает как ожидается в SSMS. Когда я вызываю процедуру с использованием MSSQL обертки в PHPНе удается отправить почтой базы данных SQL Server через PHP

mssql_query("EXEC myprocedure 'mypara1' 'mypara2'"); 

вставки выполнены, но функция почтовой базы данных не выполняются. Я удалил вставку из первоначальной процедуры и оставил почтовую функцию базы данных в самой процедуре и не отправил электронную почту.

Есть ли причина, по которой почта базы данных отключена, если вы используете функцию «mssql_query»? Есть ли другой способ для меня вызвать мою процедуру, чтобы почта почты функционировала так, как ожидалось?

+0

Вы используете тот же логин, когда тестируете это? любой пользовательский php регистрируется, поскольку может не иметь того же права, что и все, что вы вошли в ssms as. –

+0

вы вызываете хранимую процедуру, которая помечена черным цветом на вашем языке сервера. Это означает, что если на самом деле SSMS может выполнить вашу хранимую процедуру и отправить почту с теми же точными параметрами, то php должен иметь возможность, поскольку вы говорите, что она делает что-то вроде вставки строк. Вы можете посмотреть, что происходит на сервере обмена (или аналогичном) с помощью анализатора журналов инструментов, или если у вас есть sql 2005/08, у вас есть таблица очереди сообщений, на которую вы можете посмотреть. Взгляните на http://msdn.microsoft.com/en-us/library/ms187540%28v=sql.105%29.aspx – RandomUs1r

+0

@MarcB Это действительно проблема доступа пользователей. Не стесняйтесь утверждать это как ответ! –

ответ

1

Вы используете тот же логин, когда тестируете это? Независимо от того, какой пользователь php входит в систему, поскольку он может не обладать такими же правами, как и все, что вы зарегистрировали в SSMS.

Смежные вопросы