我尝试通过使用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打印循环的值,每次它根据需要超级打印值,但在数据库中它们以上面的格式存储而不是
答案 0 :(得分:0)
bindParam
通过引用获取其输入,在重用相同的变量时会产生此效果...请改用bindValue
。
答案 1 :(得分:-1)
使用此代码,$ value by reference,因为bindParam需要& $ variable
foreach($this->user as $key=>&$value)
{
$key = ":" . $key;
$insert->bindParam($key,$value);
}