首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[函数]sqlsrv_execute()函数—用法及示例

发布于 2025-05-07 23:01:36
0
8

函数名:sqlsrv_execute() 适用版本:PHP 5.3.0及以上版本 用法:sqlsrv_execute()函数用于执行已经准备好的SQL语句或存储过程。它可以执行一条SQL查询语句或执行...

函数名:sqlsrv_execute()

适用版本:PHP 5.3.0及以上版本

用法:sqlsrv_execute()函数用于执行已经准备好的SQL语句或存储过程。它可以执行一条SQL查询语句或执行一个存储过程,并返回结果集或影响的行数。

语法:bool sqlsrv_execute( resource $stmt [, array &$params ] )

参数:

  • $stmt: 必需。表示一个已经准备好的SQL语句或存储过程的语句句柄。可以通过sqlsrv_prepare()函数获取。
  • $params: 可选。一个包含参数的数组,用于绑定到SQL语句或存储过程。参数数组的键值对应于SQL语句或存储过程中的参数名。

返回值:执行成功返回true,执行失败返回false。

示例1:执行一条简单的SQL查询语句

$serverName = "localhost";
$connectionOptions = array(
    "Database" => "myDatabase",
    "Uid" => "myUsername",
    "PWD" => "myPassword"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}

$sql = "SELECT * FROM myTable";
$stmt = sqlsrv_prepare($conn, $sql);

if(sqlsrv_execute($stmt) === false) {
    die(print_r(sqlsrv_errors(), true));
}

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row['column1'].", ".$row['column2']."<br />";
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);

示例2:执行一个带参数的存储过程

$serverName = "localhost";
$connectionOptions = array(
    "Database" => "myDatabase",
    "Uid" => "myUsername",
    "PWD" => "myPassword"
);
$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn === false) {
    die(print_r(sqlsrv_errors(), true));
}

$procedureName = "{call myProcedure(?, ?)}";
$params = array(
    array("John", SQLSRV_PARAM_IN),
    array(25, SQLSRV_PARAM_IN)
);
$stmt = sqlsrv_prepare($conn, $procedureName, $params);

if(sqlsrv_execute($stmt) === false) {
    die(print_r(sqlsrv_errors(), true));
}

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row['column1'].", ".$row['column2']."<br />";
}

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);

注意:在使用sqlsrv_execute()函数前,必须先通过sqlsrv_prepare()函数准备好SQL语句或存储过程。同时,需要确保已经成功连接到数据库,并且提供了正确的连接参数。

评论
站长交流