2

试图掌握 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();
4

1 回答 1

2

来自PDO 标签维基

如果您不知道是否需要 bindValue() 或 bindParam(),请选择前者。bindValue() 不那么模棱两可,副作用也更小。

于 2013-03-31T19:14:28.017 回答