只有一个参数在php pdo

时间:2017-08-28 13:47:17

标签: php pdo

我尝试通过使用php pdo将数据插入到数组中来将值插入到数据库中我为操作编写了代码

$insert = $this->var1->prepare('INSERT INTO person (username,password,email) VALUES (:username,:password,:email)');
        foreach($this->user as $key=>$value)
        {
            $key = ":" . $key;
            $insert->bindParam($key,$value);
        }
        $insert->execute();

        if($insert->rowCount()>0)
        {
            echo "database has sucessfully updated";
            $this->response["status"] = 1;
        }

当我的数组有输入

Array
(
[username] => example
[password] => example@password
[email] => example@email
)

我根据代码获取输出数据库成功更新但我的数据库以最新方式更新

username          password         email
example@email     example@email    example@email 

而不是

username          password           email
example           example@password   example@email

我无法理解上面的循环中的错误,我尝试通过echo打印循环的值,每次它根据需要超级打印值,但在数据库中它们以上面的格式存储而不是

2 个答案:

答案 0 :(得分:0)

bindParam通过引用获取其输入,在重用相同的变量时会产生此效果...请改用bindValue

答案 1 :(得分:-1)

使用此代码,$ value by reference,因为bindParam需要& $ variable

foreach($this->user as $key=>&$value)
        {
            $key = ":" . $key;
            $insert->bindParam($key,$value);
        }