PHP gera inserção PDO dinâmica

O código a seguir deve inserir cada par de valores-chave em uma matriz em um valor de coluna de math em uma tabela. O script não retorna nenhum erro, mas a linha inserida contém apenas o último valor na matriz.

Por exemplo.

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

insira a linha com sucesso em uma tabela com as colunas um, dois e três, mas insira o valor 3 ao todo.

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

questionAnswers(4)

yourAnswerToTheQuestion