gpt4 book ai didi

php - 存储过程、MySQL 和 PHP

转载 作者:行者123 更新时间:2023-11-29 23:46:01 25 4
gpt4 key购买 nike

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

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

最佳答案

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

"Syntax error or access violation: 1414 OUT or INOUT argument $parameter_number for routine $procedure_name is not a variable or NEW pseudo-variable".

您可以在 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";

关于php - 存储过程、MySQL 和 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com