存储过程、MySQL 和 PHP

2024-03-10

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

我正在从事一个小型爱好项目,由于各种原因,我选择了 LAMP 路线。有什么提示/技巧/陷阱或良好的起点来使用 MySQL 和 PHP5 的存储过程吗?我的 MySQL 版本支持存储过程。


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

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

您可以查看错误报告bugs.mysql.com http://bugs.mysql.com/bug.php?id=11638。 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";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

存储过程、MySQL 和 PHP 的相关文章

随机推荐