Php 存储数组的PDO执行变量

Php 存储数组的PDO执行变量,php,pdo,Php,Pdo,$data变量存储一个包含用户名和密码的数组,需要将其插入到某个表中 $data = array('username' => $username, 'password' => $password); foreach($data as $key => $value){ $values = $values . "'" . $value . "'" . ","; } $sql = "INSERT INTO table(username, password) VALUES (?,

$data变量存储一个包含用户名和密码的数组,需要将其插入到某个表中

$data = array('username' => $username, 'password' => $password);
foreach($data as $key => $value){
   $values = $values . "'" . $value . "'" . ",";
}
$sql = "INSERT INTO table(username, password) VALUES (?, ?)";
$query = $con->prepare($sql);
$query->execute($values);

如何更改此代码,使其将$values变量的值打印到execute函数中?例如“Newuser”、“mysecretpass”

试试这个!通过传递插入值数组来执行准备好的语句

$sql = "INSERT INTO table(username, password) VALUES (?, ?)";
$query = $con->prepare($sql);  
$query->execute(array($username, $password));
你可以像我一样

$sql = "INSERT INTO table(username, password) VALUES (:user, :pass)";
$query = $con->prepare($sql);
$query->bindParam(':user', $data['username'] );
$query->bindParam(':pass', $data['password']);
$query->execute();

您可以这样做:

$data = array('username' => $username, 'password' => $password);
$sql = "INSERT INTO table(username, password) VALUES (:username, :password)";
$query = $con->prepare($sql);
foreach($data as $key => $value){
   $query->bindValue($key, $value);
   #echo 'key = '.$key.' | value = '.$value;
}
$query->execute();

上面将每个值绑定到它的占位符,如果您想打印它们,您可以。

我已经知道这种方法,但问题是数组已经存储在变量$values中。您的意思是,您想从这个$data=array('username'=>'Newuser','password'=>'mysecretpass')分配它@Pat4561哦,我知道为什么,您需要使用命名占位符,您可以看到我的编辑
插入表(用户名,密码)值(:用户名,:密码)