Compartir a través de


sqlsrv_query

Prepara y ejecuta una instrucción.

Nota

Esta función está destinada para ejecutar consultas de un solo uso. Para obtener más información, vea Cómo ejecutar una consulta única.

Sintaxis

sqlsrv_query( resource $conn, string $tsql [, array $params [, array $options]])

Parámetros

$conn: el recurso de conexión asociado con la instrucción preparada.

$tsql: la expresión de Transact-SQL que corresponde a la instrucción preparada.

$params [OPCIONAL]: una array de valores que se corresponden con los parámetros de una consulta con parámetros. Los elementos de la matriz pueden ser cualquiera de los siguientes:

  • Un valor literal.

  • Una variable de PHP.

  • Una array con la estructura siguiente:

    array($value [, $direction [, $phpType [, $sqlType]]])
    

    La descripción de cada uno de los elementos de la matriz se proporciona en la tabla siguiente:

    Elemento Descripción

    $value

    Un valor literal, una variable de PHP o una variable por referencia de PHP.

    $direction[OPCIONAL]

    Una de las siguientes constantes de SQLSRV_PARAM_* se usa para indicar la dirección del parámetro: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. El valor predeterminado es SQLSRV_PARAM_IN.

    Para obtener más información acerca de constantes de PHP, vea Constantes SQLSRV.

    $phpType[OPCIONAL]

    Una constante SQLSRV_PHPTYPE_* que especifica el tipo de datos de PHP del valor devuelto.

    $sqlType[OPCIONAL]

    Una constante SQLSRV_SQLTYPE_* que especifica el tipo de datos de SQL Server del valor de entrada.

$options [OPCIONAL]: una matriz asociativa que establece las propiedades de la consulta. Las claves admitidas son las siguientes:

Clave Valores admitidos Descripción

QueryTimeout

Un valor entero positivo.

Establece el tiempo de espera de la consulta en segundos. De forma predeterminada, el controlador esperará indefinidamente los resultados.

SendStreamParamsAtExec

true o false

El valor predeterminado es true.

Configura el controlador para que envíe todos los datos en secuencias en el momento de la ejecución (true) o para que envíe los datos en secuencias en fragmentos (false). De forma predeterminada, el valor está establecido en true. Para obtener más información, vea sqlsrv_send_stream_data.

De desplazamiento

SQLSRV_CURSOR_FORWARD

SQLSRV_CURSOR_STATIC

SQLSRV_CURSOR_DYNAMIC

SQLSRV_CURSOR_KEYSET

Esta clave se ha agregado en la versión 1.1 del Controlador de SQL Server para PHP.

Para obtener más información acerca de estos valores, vea Especificar un tipo de cursor y seleccionar filas.

Valor devuelto

Un recurso de instrucción. Si la instrucción no se puede crear o ejecutar, se devuelve false.

Ejemplo

En el ejemplo siguiente se actualiza un campo de la tabla Sales.SalesOrderDetail de la base de datos AdventureWorks. En el ejemplo se supone que SQL Server y la base de datos AdventureWorks están instalados en el equipo local. Cuando se ejecuta el ejemplo desde la línea de comandos, todos los resultados se escriben en la consola.

<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array("Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Set up the parameterized query. */
$tsql = "UPDATE Sales.SalesOrderDetail 
         SET OrderQty = ( ?) 
         WHERE SalesOrderDetailID = ( ?)";

/* Assign literal parameter values. */
$params = array( 5, 10);

/* Execute the query. */
if( sqlsrv_query( $conn, $tsql, $params))
{
      echo "Statement executed.\n";
} 
else
{
      echo "Error in statement execution.\n";
      die( print_r( sqlsrv_errors(), true));
}

/* Free connection resources. */
sqlsrv_close( $conn);
?>

Vea también

Tareas

Cómo realizar consultas parametrizadas
Cómo enviar datos como una secuencia

Conceptos

Acerca de ejemplos de código en la documentación

Otros recursos

Referencia de la API (Controlador SQL Server para PHP)
Consideraciones de diseño
Usar parámetros de direcciones