Todas las columnas se establecen en el mismo valor

Estoy totalmente perdido en cuanto a lo que está mal con mi guión. Los datos JSON están ingresando correctamente y las variables $ i y $ current son todas lo que deberían ser en cada etapa del forloop.

Parece que sigue actualizando mi base de datos con el ID, por lo que en el caso de que el ID sea 11, actualizará todas las columnas con el número 11.

Aquí está mi guión:

if($mode == 'SAVE_BUYING_ROW')
{   
    $JSON = (array)$JSON ;

    include('pdoconnect.php') ;
    $result = $dbh->prepare("UPDATE parts_trading_instructions
                 SET quantity = ?, supplierRef = ?, currencyRef = ?, 
                             net = ?, vat = ?, shippingNet = ?,
                 shippingVat = ?, direct = ?, ebayItemNumber = ?
                 WHERE id = ?") ;
    $i = 0 ;
    foreach($JSON as $current) {
        $current = (string)$current ;
        if($i == 0)
        {
            $i++ ;
            continue ;
        }

            $result->bindParam($i, $current, PDO::PARAM_STR) ;  
        $i++ ;
    }

$result->execute() ;

}

¿Alguien puede ver dónde me voy mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta