Procedura: Specificare la direzione del parametro usando il driver SQLSRV
In questo argomento viene illustrato come usare il driver SQLSRV per specificare la direzione del parametro nella chiamata di una stored procedure. Si noti che la direzione del parametro viene specificata quando si crea una matrice di parametri (passaggio 3) che viene passata a sqlsrv_query o sqlsrv_prepare.
Per specificare la direzione di un parametro
Definire una query Transact-SQL che chiama una stored procedure. Usare il punto interrogativo (?) anziché i parametri da passare alla stored procedure. Questa stringa, ad esempio, chiama una stored procedure, UpdateVacationHours, che accetta due parametri:
$tsql = "{call UpdateVacationHours(?, ?)}";
Nota
È consigliabile pertanto chiamare le stored procedure usando la sintassi canonica. Per altre informazioni sulla sintassi canonica, vedere Chiamata di una stored procedure.
Inizializzare o aggiornare le variabili PHP che corrispondono ai segnaposto della query Transact-SQL. Ad esempio, il codice seguente consente di inizializzare i due parametri della stored procedure UpdateVacationHours:
$employeeId = 101; $usedVacationHours = 8;
Nota
Le variabili inizializzate o aggiornate su null, DateTimeo tipi di flusso non possono essere usate come parametri di output.
Usare le variabili PHP del passaggio 2 per creare o aggiornare una matrice di valori di parametri che corrispondono nell'ordine ai segnaposto della stringa di Transact-SQL. Specificare la direzione per ogni parametro nella matrice. La direzione di ogni parametro è determinata in uno dei due modi seguenti: per impostazione predefinita (per i parametri di input) o tramite costanti SQLSRV_PARAM_* (per i parametri di output e bidirezionali). Ad esempio, il codice seguente specifica il parametro $employeeId come parametro di input e il parametro $usedVacationHours come parametro bidirezionale:
$params = array( array($employeeId, SQLSRV_PARAM_IN), array($usedVacationHours, SQLSRV_PARAM_INOUT) );
Per comprendere la sintassi per la specifica della direzione dei parametri, si supponga che $var1, $var2e $var3 corrispondano rispettivamente ai parametri di input, output e bidirezionale. È possibile specificare la direzione del parametro in uno dei modi seguenti:
Specificare in modo implicito il parametro di input, specificare in modo esplicito il parametro di output e specificare in modo esplicito un parametro bidirezionale:
array( array($var1), array($var2, SQLSRV_PARAM_OUT), array($var3, SQLSRV_PARAM_INOUT) );
Specificare in modo esplicito il parametro di input, specificare in modo esplicito il parametro di output e specificare in modo esplicito un parametro bidirezionale:
array( array($var1, SQLSRV_PARAM_IN), array($var2, SQLSRV_PARAM_OUT), array($var3, SQLSRV_PARAM_INOUT) );
Eseguire la query con sqlsrv_query o con sqlsrv_prepare e sqlsrv_execute. Ad esempio, il codice seguente usa la connessione $conn per eseguire la query $tsql con i valori di parametro specificati in $params:
sqlsrv_query($conn, $tsql, $params);
Vedi anche
Procedura: Recuperare i parametri di output mediante il driver SQLSRV
Procedura: Recuperare i parametri di input e output usando il driver SQLSRV