sql >> Database >  >> RDS >> Mysql

error:'Ongeldig parameternummer:parameter was niet gedefinieerd' bij gebruik van een array om in PDO in te voegen

Zoals Phantom in zijn antwoord zei:je hebt een typfout. Er isevent_price_currency toets je array in en :event_price_currency_id tijdelijke aanduiding in de instructie prepare(). Als het repareren niet werkt, probeer dan de volgende code en controleer de typefout. Laat het me weten als je een probleem hebt.

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();
}


  1. Onjuist sleutelbestand voor tabel '/tmp/#sql_3c51_0.MYI' probeer het te repareren

  2. SQL - Vind ontbrekende int-waarden in meestal geordende opeenvolgende reeksen

  3. Grote transacties afhandelen met streamingreplicatie en MariaDB 10.4

  4. DATETIMEFROMPARTS() Voorbeelden in SQL Server (T-SQL)