Salve a tutti, non capisco il perchè ma la funzione ON DUPLICATE KEY UPDATE con PDO non funziona.
Ho provato già anche REPLACE INTO ma ogni volta i valori vengono riaggiunti al database preesistente. Ciò che vorrei ottenere è che nel caso in cui all'interno della tabella sia gia presente lo stesso prodotto vengano solamente aggiornati i valori degli altri campi (specialmente il valore quantita). Ho cercato su internet ed ho visto che è un problema comune a molti. Ho tentato vari metodi ma non ho ottenuto risultati. Dove sbaglio? Grazie
codice:
$products = [];
foreach (array_keys($match[2]) as $idx) {
$taglia = substr($match[2][$idx],1); // 1 e' il numero di caratteri da rimuovere
$products[] = [
'prodotto' => $taglia,
'quantita' => $match[3][$idx],
'terminale' => $match[4][$idx]
];
}
$pdo = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);
$query = $pdo->prepare('
INSERT INTO tabella
(prodotto, quantita, terminale)
VALUES
(:prodotto, :quantita, :terminale)
ON DUPLICATE KEY UPDATE
quantita= :quantita, terminale= :terminale');
$query->bindParam(':prodotto', $prodotto);
$query->bindParam(':quantita', $quantita, PDO::PARAM_STR);
$query->bindParam(':terminale', $terminale, PDO::PARAM_STR);
$query->execute();
foreach ($products as $product) {
$query->execute($product);
}