创建与指定的连接关联的语句资源。
注意: |
---|
此函数对于执行多个查询来说非常有用。有关详细信息,请参阅如何多次执行一个查询。
|
sqlsrv_prepare( resource $conn, string $tsql [, array $params [, array $options]])
$conn:与所创建的语句关联的连接资源。
$tsql:与所创建的语句相对应的 Transact-SQL 表达式。
$params [可选]:与参数化查询中的参数相对应的值的 array。数组的每个元素可以为以下任一项:
array(&$value [, $direction [, $phpType [, $sqlType]]])
注意: |
---|
传递为查询参数的变量应按引用而不是按值来进行传递。例如,传递 &$myVariable 而不是 $myVariable 。在执行带有按值参数的查询时,会发出 PHP 警告。
|
元素 | 说明 |
---|---|
&$value |
文字值或对 PHP 变量的引用。 |
$direction[可选] |
用于指示参数方向的下列 SQLSRV_PARAM_* 常量之一:SQLSRV_PARAM_IN、SQLSRV_PARAM_OUT、SQLSRV_PARAM_INOUT。默认值为 SQLSRV_PARAM_IN。 |
$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。
下面的示例将预定义并执行一个语句。执行该语句时(参阅 sqlsrv_execute)将更新 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 Transact-SQL query. */ $tsql = "UPDATE Sales.SalesOrderDetail SET OrderQty = ? WHERE SalesOrderDetailID = ?"; /* Assign parameter values. */ $param1 = 5; $param2 = 10; $params = array( &$param1, &$param2); /* Prepare the statement. */ if( $stmt = sqlsrv_prepare( $conn, $tsql, $params)) { echo "Statement prepared.\n"; } else { echo "Statement could not be prepared.\n"; die( print_r( sqlsrv_errors(), true)); } /* Execute the statement. */ if( sqlsrv_execute( $stmt)) { echo "Statement executed.\n"; } else { echo "Statement could not be executed.\n"; die( print_r( sqlsrv_errors(), true)); } /* Free the statement and connection resources. */ sqlsrv_free_stmt( $stmt); sqlsrv_close( $conn); ?>
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有