我在执行带有变量的存储过程时遇到了问题:
INSERT INTO table_walkinleads
VALUES('', FirstName, LastName, Phone, Email, NOW())
但是尽管这在 phpmyadmin 中运行良好。在我的 php 代码中并非如此。
主要原因是因为这个。
foreach($params as $name => $value ) {
$this->query->bindParam($name,$value);
}
仔细查看$value
foreach 语句中的变量。以前是这样的。但经过一番调查,我意识到它需要是&$value
. 但为什么?有什么区别?为什么只是在 value 变量中添加该引用会使我的存储过程正常工作?
foreach($params as $name => &$value ) {
$this->query->bindParam($name,$value);
}
PS:错误仍在执行存储过程,但最后一个变量被插入为存储过程中所有变量的相同值。使它看起来像我刚刚为所有存储过程变量输入了相同的变量。
有人对这种行为及其背后的原因有解释吗?