1

我在执行带有变量的存储过程时遇到了问题:

INSERT INTO table_walkinleads
VALUES('', FirstName, LastName, Phone, Email, NOW())

但是尽管这在 phpmyadmin 中运行良好。在我的 php 代码中并非如此。

主要原因是因为这个。

foreach($params as $name => $value ) {   
    $this->query->bindParam($name,$value);
}

仔细查看$valueforeach 语句中的变量。以前是这样的。但经过一番调查,我意识到它需要是&$value. 但为什么?有什么区别?为什么只是在 value 变量中添加该引用会使我的存储过程正常工作?

foreach($params as $name => &$value ) {   
    $this->query->bindParam($name,$value);
}

PS:错误仍在执行存储过程,但最后一个变量被插入为存储过程中所有变量的相同值。使它看起来像我刚刚为所有存储过程变量输入了相同的变量。

有人对这种行为及其背后的原因有解释吗?

4

0 回答 0