Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

erro:'Número de parâmetro inválido:parâmetro não foi definido' ao usar um array para INSERT no PDO


Como Phantom disse em sua resposta, você tem um erro de digitação. Existe event_price_currency key em sua matriz e :event_price_currency_id placeholder na instrução prepare(). Se corrigir isso não funcionar, tente o código a seguir e verifique o erro de digitação. Deixe-me saber se você enfrentar qualquer problema.
try
{
   $DBH->beginTransaction();
   $STH = $DBH->prepare("INSERT INTO event_prices(event_id, event_price_type, event_price,  event_price_currency_id, event_price_info ) values (?, ?, ?, ?, ?)");

  foreach($prices as $price)
  {
    foreach($price as $row)
    {
        $data[] = $row;
    }

    $STH->execute($data);
    $data = NULL;
  }

  $DBH->commit();
}

catch(PDOException $e)
{
  echo 'Error ! ' . $e->getMessage();
  die();
}