PHP 将数组传递给 PDO bindParam

Aww*_*sss 3 php mysql pdo

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)

感谢您的时间。

Add*_*Ltd 7

您可以通过以下方式在单行中使用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)

希望能帮到你!


SID*_*IDU 5

是的,您必须为每个 bindParam() 执行一行,如果您想将多个值绑定到一个数组中,请在 excute() 中尝试

http://php.net/manual/en/pdostatement.bindparam.php