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