Php 在PDO中插入数组

Php 在PDO中插入数组,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试使用PDO将此数组插入到我的表中: $order = $_POST['order']; $pdo = new PDO("mysql:charset=utf8mb4;host=$servername;dbname=$dbname", $username, $password); $sql = "INSERT INTO orders (pid, name,

我正在尝试使用PDO将此数组插入到我的表中:

$order = $_POST['order'];

$pdo = new PDO("mysql:charset=utf8mb4;host=$servername;dbname=$dbname", $username, $password);


$sql = "INSERT INTO orders 
                (pid, 
                 name, 
                 style, 
                 weight, 
                 quantity) 
    VALUES      (:id, 
                 :name, 
                 :style, 
                 :weight, 
                 :quantity) ";

$stmt= $pdo->prepare($sql);


foreach ($order as $order) {

     $stmt->execute(array (
        'id'        => $order['id'],
        'name'      => $order['name'],
        'style'     => $order['style'],
        'weight'    => $order['weight'],
        'price'     => $order['price'],
        'quantity'  => $order['quantity']
    ));
     
}
但这给了我一个错误:

PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens 

此外,这对注入是否安全?

循环比插入查询多列出一个参数。