sqlsrv_query
预定义并执行一个语句。
备注
此函数适用于执行一次性查询。有关详细信息,请参阅如何执行单个查询。
语法
sqlsrv_query( resource $conn, string $tsql [, array $params [, array $options]])
参数
$conn:与预定义语句关联的连接资源。
$tsql:与预定义语句相对应的 Transact-SQL 表达式。
$params [可选]:与参数化查询中的参数相对应的值的 array。数组的每个元素可以为以下任一项:
文字值。
PHP 变量。
具有以下结构的 array:
array($value [, $direction [, $phpType [, $sqlType]]])
下表中列出了针对数组中每个元素的说明:
元素 说明 $value
文字值、PHP 变量或由引用传递的 PHP 变量。
$direction[可选]
用于指示参数方向的下列 SQLSRV_PARAM_* 常量之一:SQLSRV_PARAM_IN、SQLSRV_PARAM_OUT、SQLSRV_PARAM_INOUT。默认值为 SQLSRV_PARAM_IN。
有关 PHP 常量的详细信息,请参阅 SQLSRV 常量。
$phpType[可选]
用于指定返回值的 PHP 数据类型的 SQLSRV_PHPTYPE_* 常量。
$sqlType[可选]
用于指定输入值的 SQL Server 数据类型的 SQLSRV_SQLTYPE_* 常量。
$options [可选]:用于设置查询属性的关联数组。支持的键如下所示:
键 | 支持的值 | 说明 |
---|---|---|
QueryTimeout |
正整数值。 |
设置查询超时值(秒)。默认情况下,驱动程序将无限期地等待结果。 |
SendStreamParamsAtExec |
true 或false 默认值为 true。 |
将驱动程序配置为在执行时发送所有流数据 (true),或以块的形式发送流数据 (false)。默认情况下,值设置为 true。有关详细信息,请参阅 sqlsrv_send_stream_data。 |
可滚动 |
SQLSRV_CURSOR_FORWARD SQLSRV_CURSOR_STATIC SQLSRV_CURSOR_DYNAMIC SQLSRV_CURSOR_KEYSET |
在 SQL Server Driver for PHP 的 1.1 版中添加了此键。 有关这些值的详细信息,请参阅指定游标类型和选择行。 |
返回值
语句资源。如果无法创建和/或执行相应语句,则返回 false。
示例
下面的示例更新 AdventureWorks 数据库的 Sales.SalesOrderDetail 表中的字段。此示例假定本地计算机上已安装了 SQL Server 和 AdventureWorks 数据库。从命令行运行此示例时,所有的输出都将写入控制台。
<?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);
?>