当前位置:  开发笔记 > 编程语言 > 正文

存储过程,MySQL和PHP

如何解决《存储过程,MySQL和PHP》经验,为你挑选了1个好方法。

问题是一个相当开放的问题.我已经使用存储过程与MS SQLServer一段时间使用经典的ASP和ASP.net并且非常喜欢它们.

我有一个小的业余爱好项目我正在研究,由于各种原因已经走了LAMP路线.使用MySQL和PHP5的存储过程的任何提示/技巧/陷阱或良好的起点?我的MySQL版本支持存储过程.



1> dastra..:

@michal kralik - 遗憾的是,PDO使用的MySQL C API存在一个错误,这意味着在某些版本的MySQL上运行上面的代码会导致错误:

"语法错误或访问冲突:例程$ procedure_name的1414 OUT或INOUT参数$ parameter_number不是变量或NEW伪变量".

您可以在bugs.mysql.com上查看错误报告.它已针对5.5.3+和6.0.8+版本进行了修复.

要解决此问题,您需要分隔输入和输出参数,并使用用户变量来存储结果,如下所示:

$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(:in_string, @out_string)");
$stmt->bindParam(':in_string', 'hello'); 

// call the stored procedure
$stmt->execute();

// fetch the output
$outputArray = $this->dbh->query("select @out_string")->fetch(PDO::FETCH_ASSOC);

print "procedure returned " . $outputArray['@out_string'] . "\n";

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有