PHP generar inserción de PDO dinámica

El siguiente código debe insertar cada par clave-valor en una matriz en un valor de columna matemática en una tabla. El script no devuelve errores, pero la fila insertada contiene solo el último valor de la matriz

P.ej.

array('one'=>1,'two'=>2,'three'=>3);

inserte la fila correctamente en una tabla con las columnas uno, dos y tres, pero inserte el valor 3 en total.

    $columns = array();
    $bind = '';
    foreach($array as $key => $value){

        $columns[] = $key;

    }

    $columnString = implode($columns,',');
    $valueString = implode($columns,',:');
    $valueString = ':' . $valueString;

    $core = core::getInstance();
    $STH = $core->dbh->prepare("INSERT INTO table (" . $columnString . ") VALUES 
    (" . $valueString . ")");

    foreach($array as $key => $value){

        $STH->bindParam(':' . $key,$value);
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta