使用 PHP PDO 调用 MySQL 存储过程 [重复]
Posted
技术标签:
【中文标题】使用 PHP PDO 调用 MySQL 存储过程 [重复]【英文标题】:Call MySQL Stored Procedure with PHP PDO [duplicate] 【发布时间】:2013-03-21 22:26:03 【问题描述】:试图掌握 mysql/php 中的存储过程。 SP 在 MySQL 控制台中运行良好。
但是尝试在 PHP 中调用它,我得到以下信息:
Fatal error: Cannot pass parameter 2 by reference in /home/dir/public_html/system/classes/account.class on line 92
try
$dsn = 'mysql:dbname=db_name;host=localhost';
$dbh = new PDO($dsn, 'usrName', 'password');
catch (PDOException $e)
echo 'Connection failed: ' . $e->getMessage();
$stmt = $dbh->prepare("CALL db_name.stprNewUser(?,@statusValue)");
//$stmt->bindParam(1, 'user@googlemail.com', PDO::PARAM_STR); // <<LINE 92 DID NOT WORK
$stmt->bindValue(1, 'user@googlemail.com', PDO::PARAM_STR); // <<LINE 92 DID WORK
$stmt->execute();
【问题讨论】:
【参考方案1】:来自PDO tag wiki:
如果您不知道是否需要 bindValue() 或 bindParam(),请选择前者。 bindValue() 不那么模棱两可,副作用也更小。
【讨论】:
感谢 Google / php.net/manual/en/pdostatement.bindvalue.php 的帮助。以上是关于使用 PHP PDO 调用 MySQL 存储过程 [重复]的主要内容,如果未能解决你的问题,请参考以下文章