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

Rispondi quotando