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