我有这个php函数将一个对象添加到数据库中,但是这给我一些麻烦,使其无法工作。我已经很习惯Java方式了,所以我尝试遵循相同的模式,并且收到一条错误消息,内容为“严格的标准:只能通过引用传递变量”。
这是代码:
public function saveUser(User $user){
$this->connection = DaoFactory::openConnection();
$this->query = $this->connection->prepare($this->SAVE_QUERY);
$this->query->bindParam(':name', $user->getName());
$this->query->bindParam(':lastName', $user->getLastName());
$this->query->bindParam(':age', $user->getAge());
$this->query->bindParam('gender', $user->getGender());
$this->query->bindParam(':email', $user->getEmail());
$this->query->bindParam(':password', $user->getPassword());
$this->query->execute();
$this->connection = null;
}
我进行了搜索,发现应将object属性放置在变量中以避免发生此问题,但是这样做会使代码变得非常凌乱和复杂。
$name = $user->getName();
$this->query->bindParam(':name',$name);
还有其他解决方法吗?
最佳答案
bindParam
需要一个通过引用传递的变量,而是给它一个从函数返回的值,该值不能通过引用传递。因此,请改用其他API方法 bindValue()
绑定(bind)您的值。
看到https://stackoverflow.com/a/14413428/476有什么区别。
关于php - 通过引用传递对象属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27285306/