我有这个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/

10-16 23:41