2014-10-17 134 views
1

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

例如,在SQLServer的的提示:

EXEC测试 'ARG1', 'ARG2'

什么是PHP下一步与PDO?

在此先感谢您的回复。

+0

'EXEC测试,' – 2014-10-17 14:51:09

回答

0

我通常在PDO中使用问号来标记参数I.E.

$stmt = $db->prepare("UPDATE table SET name=? WHERE id=?"); 
$stmt->execute(array($name, $id)); 
$affected_rows = $stmt->rowCount(); 

您可以阅读PDO查询结构的一个很好的解释here

1

要使用muliple参数,只需要使用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)); 
+0

我已经尝试在存储过程,并且它在SQL Server中工作。 在SQLServer中我有一个结果,但在PHP中我没有结果。 你知道为什么吗? – Xiaolong 2014-10-17 15:23:51

+0

我试过了,它工作正常。 可以肯定的是:你是怎么在php中调用这个过程的?你能发布代码吗? – Tobias 2014-10-17 15:43:38