尝试掌握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();
答案 0 :(得分:2)
来自PDO tag wiki:
如果您不知道是否需要bindValue()或bindParam(),请转到前者。 bindValue()不那么模糊,副作用较小。