PHP 7和MSSQL PDO:使用输入和输出参数调用存储过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 7和MSSQL PDO:使用输入和输出参数调用存储过程相关的知识,希望对你有一定的参考价值。
在php5中,我曾经像这样绑定Params:
mssql_bind($stmt,'@BIAC_MEMBER',$inMemberID,SQLVARCHAR); //Input
mssql_bind($stmt,'@BIAC_RESULT',$outResult,SQLVARCHAR,true); //Output
由于mssql_*
在PHP7中删除了,你现在需要使用PDO我改变了我的连接:
$stmt = $conn->prepare("CALL MyStoredProc(?, ?, ?, ?)");
根据PHP文档,您可以使用$stmt->bindParam();
进行绑定,但是他们没有提到是否以及如何绑定输入以及输出参数。
是否可以指定多个输入/输出参数,如果是,如何?
在PDO
你可以使用bindParam
。这是一个如何使用bindParam
的完整示例。 https://www.ibm.com/support/knowledgecenter/SSSNY3_10.1.0/com.ibm.swg.im.dbclient.php.doc/doc/t0023502.html
祝好运!
您可以在文档页面后面指定params:
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
& $value";
?>
这有一个输出参数和一个输入/输出参数,因此应该很容易适应您的需要。它们的关键是简单地设置正确的data_type和length值(bindParam()中的参数3和4)
完整的数据类型列表:
http://php.net/manual/en/pdo.constants.php
注意:这是从文档中获取并进行了调整,但我没有对其进行过测试,但希望它至少可以帮助您找到正确的方向。
以上是关于PHP 7和MSSQL PDO:使用输入和输出参数调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章
运维 | CentOS 7 下给 PHP 安装 MSSQL - PDO拓展
如何通过 PHP 和 Linux 使用 pdo 连接到 mssql?