在PHP5中,我曾经像这样绑定Params:
mssql_bind($stmt,'@BIAC_MEMBER',$inMemberID,SQLVARCHAR); //Input
mssql_bind($stmt,'@BIAC_RESULT',$outResult,SQLVARCHAR,true); //Output
由于在PHP7中删除了mssql_*
并且您需要使用PDO,我现在改变了我的连接:
$stmt = $conn->prepare("CALL MyStoredProc(?, ?, ?, ?)");
根据PHP文档,您可以使用$stmt->bindParam();
进行绑定,但是他们没有提到是否以及如何绑定输入以及输出参数。
是否可以指定多个输入/输出参数,如果可以,如何指定?
答案 0 :(得分:0)
在PDO
中,您可以使用bindParam
。以下是如何使用bindParam
的完整示例。
https://www.ibm.com/support/knowledgecenter/SSSNY3_10.1.0/com.ibm.swg.im.dbclient.php.doc/doc/t0023502.html
祝你好运!
答案 1 :(得分:0)
您可以在文档页面后指定参数:
http://php.net/manual/en/pdo.prepared-statements.php
http://php.net/manual/en/pdostatement.bindparam.php
即使用以下代码:
<?php
$stmt = $dbh->prepare("CALL MyStoredProc(?, ?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
$value = 'hello';
$stmt->bindParam(2, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);
// call the stored procedure
$stmt->execute();
print "procedure returned $return_value\n & $value";
?>
这有一个输出参数和一个输入/输出参数,因此应该很容易适应您的需要。它们的关键是设置正确的data_type和length值(bindParam()中的参数3和4)
完整的数据类型列表:
http://php.net/manual/en/pdo.constants.php
注意:这是从文档中获取并进行了调整,但我没有对其进行测试,但希望它至少可以帮助您找到正确的方向。