PDO 参数:
$cto=new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
Run Code Online (Sandbox Code Playgroud)
与数据库交互
$csql=$cto->prepare("INSERT INTO `users`(`username`, `password`, `class`, `is_on`, `time_log`, `IP`)
VALUES (:name,:pass,:class,0,0,'0')");
$pr=[
':name' => $_POST['username'],
":pass" => $_POST['password'],
":class" => $_POST["class"],
];
$csql->execute($pr);
$cto=null;
Run Code Online (Sandbox Code Playgroud)
我的问题是,我目前在执行中使用数组 $pr,我可以使用 bindParam 传递这个数组吗
$csql->bindParam($pr);
$csql->exec();
Run Code Online (Sandbox Code Playgroud)
感谢您的时间。
您可以通过以下方式在单行中使用bindParam():
$csql=$cto->prepare("INSERT INTO `users`(`username`, `password`, `class`, `is_on`, `time_log`, `IP`)
VALUES (:name,:pass,:class,0,0,'0')");
//Looping for all values into array...
foreach ($pr as $key => &$val) {
$csql->bindParam($key, $val);
}
$csql->execute();
Run Code Online (Sandbox Code Playgroud)
希望能帮到你!
是的,您必须为每个 bindParam() 执行一行,如果您想将多个值绑定到一个数组中,请在 excute() 中尝试
http://php.net/manual/en/pdostatement.bindparam.php