Partilhar via


Como especificar a direção do parâmetro com o driver SQLSRV

Baixar driver PHP

Este tópico descreve como usar o driver SQLSRV para especificar a direção do parâmetro ao chamar um procedimento armazenado. A direção do parâmetro é especificada ao criar um parâmetro de matriz (etapa 3) que é passado para sqlsrv_query ou sqlsrv_prepare.

Para especificar a direção do parâmetro

  1. Defina uma consulta Transact-SQL que chame um procedimento armazenado. Use pontos de interrogação (?) em vez dos parâmetros a serem passados ao procedimento armazenado. Por exemplo, essa cadeia de caracteres chama um procedimento armazenado (UpdateVacationHours) que aceita dois parâmetros:

    $tsql = "{call UpdateVacationHours(?, ?)}";  
    

    Observação

    Chamar os procedimentos armazenados usando a sintaxe canônica é a prática recomendada. Para obter mais informações sobre a sintaxe canônica, veja Como chamar um procedimento armazenado.

  2. Inicialize ou atualize as variáveis do PHP correspondentes aos espaços reservados na consulta Transact-SQL. Por exemplo, o código a seguir inicializa os dois parâmetros para o procedimento armazenado UpdateVacationHours:

    $employeeId = 101;  
    $usedVacationHours = 8;  
    

    Observação

    Variáveis que são inicializadas ou atualizadas para null, DateTimeou tipos de fluxo não podem ser usadas como parâmetros de saída.

  3. Use suas variáveis PHP da etapa 2 para criar ou atualizar uma matriz de valores de parâmetros que correspondam, em sequência, aos espaços reservados do parâmetro na cadeia de caracteres Transact-SQL. Especifique a direção de cada parâmetro na matriz. A direção de cada parâmetro é determinada por uma destas duas maneiras: por padrão (para parâmetros de entrada) ou usando constantes SQLSRV_PARAM_* (para parâmetros de saída e bidirecionais). Por exemplo, o código a seguir especifica o parâmetro $employeeId como um parâmetro de entrada e o parâmetro $usedVacationHours como um parâmetro bidirecional:

    $params = array(  
                     array($employeeId, SQLSRV_PARAM_IN),  
                     array($usedVacationHours, SQLSRV_PARAM_INOUT)  
                    );  
    

    Para entender a sintaxe para especificar a direção do parâmetro em geral, suponha que $var1, $var2e $var3 correspondam aos parâmetros de entrada, saída e bidirecional, respectivamente. Você pode especificar a direção do parâmetro das seguintes maneiras:

    • Especificar implicitamente o parâmetro de entrada, especificar explicitamente o parâmetro de saída e especificar explicitamente um parâmetro bidirecional:

      array(   
             array($var1),  
             array($var2, SQLSRV_PARAM_OUT),  
             array($var3, SQLSRV_PARAM_INOUT)  
             );  
      
    • Especificar explicitamente o parâmetro de entrada, especificar explicitamente o parâmetro de saída e especificar explicitamente um parâmetro bidirecional:

      array(   
             array($var1, SQLSRV_PARAM_IN),  
             array($var2, SQLSRV_PARAM_OUT),  
             array($var3, SQLSRV_PARAM_INOUT)  
             );  
      
  4. Execute a consulta com sqlsrv_query ou com sqlsrv_prepare e sqlsrv_execute. Por exemplo, o código a seguir usa a conexão $conn para executar a consulta $tsql com valores de parâmetros especificados em $params:

    sqlsrv_query($conn, $tsql, $params);  
    

Consulte Também

Como recuperar parâmetros de saída usando o driver SQLSRV

Como recuperar parâmetros de entrada e de saída usando o driver SQLSRV