2014-10-17 27 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