sqlsrv拡張機能を使用してPHPからパラメーターを使用してSQLServerストアドプロシージャを呼び出すためのドキュメントでは、奇妙な構文を使用しています。
{call SubtractVacationHours( ?, ?)}
私が期待するのは:
EXEC SubtractVacationHours ?, ?;
T- SQLストアドプロシージャを実行するためのSQLServerのドキュメントでは、EXEC | コマンドワードとしてEXECUTE。したがって、クエリによってエラーが発生すると思いました。
sqlsrv_query
指定されたパラメーターを使用して(つまり、疑問符を値に置き換えて)、EXECSubtractVacationHoursのSQLを使用して呼び出すことができます。
パラメータ化されたクエリについてさらに調査したところ、「CALL」はODBCプロバイダーを介して呼び出す必要があるために発生したようです。
では、2番目のEXEC構文は実際に機能しますか?または、sqlsrvドライバーを介したパラメーター化されたストアドプロシージャの呼び出しでは、ODBC CALL構文を使用する必要がありますか?