Grazie ragazzi...allora:
Quote Originariamente inviata da badaze Visualizza il messaggio
Hai controllato il valore di $prodotto ?
il bindParam rimpiazza il la pseudo variabile che comincia da : dal valore della variabile php. Potresti anche mettere $pippo se volessu.

Mmm ma io non ho assegnato nessun valore a:
$prodotto $quantita $terminale $quantita2 $terminale2


Comunque ho risolto l'errore
codice:
 Column 'prodotto' cannot be null
andando a cambiare la struttura delle colonne nel database (poichè, una volta impostato NULL alla colonna prodotto, l'errore compariva anche su le altre 2 colonne).


Adesso vi spiego meglio la situazione se io uso questo
codice:
$products = [];
    foreach (array_keys($match[2]) as $idx) {
        $products[] = [
            'prodotto'  => $match[2][$idx],
            '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)');




    foreach ($products as $product) {
        $query->execute($product);
    }
    ?>
?>
Ovviamente funziona bene ma ogni volta che viene riaperta la pagina tutti i valori vengono reinseriti (anche se già presenti)
Io invece vorrei che ogni volta che la pagina viene aperta venga aggiornato tutto il db ovvero se sono gia presenti prodotti uguali aggiorna i valori (quantita e terminale) mentre se non ce ne sono li aggiunge




Quote Originariamente inviata da M4V1 Visualizza il messaggio
Prova così:


Codice PHP:
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]        ];    } 



Nell'array che passi ad execute() non hai messo i ":" prima dei nomi.


Però poi a quel punto questo va tolto:


Codice PHP:
$query->bindParam(':prodotto'$prodotto);      $query->bindParam(':quantita'$quantitaPDO::PARAM_STR);    $query->bindParam(':terminale'$terminalePDO::PARAM_STR);    $query->execute(); 

Dopo con calma ti scrivo un codice che funzioni, ora sono di corsa.

Il problema non dovrebbero essere i due punti. Ma se mi scrivi un codice che funziona ti voglio bene lo stesso :P