用于存储过程的PDO参数

时间:2014-10-17 14:50:16

标签: php sql-server stored-procedures pdo

如何在PDO中使用2个参数调用SQL Server的存储过程。

例如在SQLServer的提示符中:

EXEC测试'arg1','arg2'

使用PDO的PHP的下一步是什么?

提前感谢您的回复。

2 个答案:

答案 0 :(得分:1)

要使用多个参数,只需对每个参数使用bindParam,或者使用命名参数:

$query="EXEC test :arg1, :arg2";
$stmt->bindParam(":arg1",$first_variable);
$stmt->bindParam(":arg2", $second_variable);

$stmt->prepare($query);
$stmt->execute();

另一种方法是直接将参数作为数组传递给execute() - 方法:

$stmt->execute(array(":arg1"=>$first_variable,":arg2"=>$second_variable

您还可以对查询中的所有参数使用问号:

$query="EXEC test ?,?";
...
...
$stmt->bindParam(1, $first_variable);
$stmt->bindParam(2, $second_variable);

或直接在execute()中包含:

$stmt->execute(array($first_variable, $second_variable));

答案 1 :(得分:0)

我通常在PDO,I.E。

中使用问号作为参数
$stmt = $db->prepare("UPDATE table SET name=? WHERE id=?");
$stmt->execute(array($name, $id));
$affected_rows = $stmt->rowCount();

您可以阅读有关PDO查询结构的详尽说明here