Problema inserir valores em Array com PDO
Olá pessoas, estou com o seguinte problema,
tenho duas query que tenho que inserir no banco, porem a segunda query eu preciso utilizar o IN no SQL o qual ali seria recebido um vetor, já pesquisei tentei a maioria dos exemplos (se não todos). porem todos não funcionavam, o código atual funciona sem erro sendo que ele só recebe o primeiro valor do IN na query ignorando todo o resto.
Vamos ao código.
//salvando o novo questionário
try {
$query = $query->open();
$query -> beginTransaction();
// Inserindo o questionário no banco de dados,
$insertQuestionario = $query -> prepare("INSERT INTO res_questionario (id_perfil, id_questionario, data_inicio, observacoes) VALUES (:id_perfil, :id_questionario, NOW(), :observacoes )");
$insertQuestionario->bindValue(':id_perfil', $user->dadosUsuarioSession('id_perfil'));
$insertQuestionario->bindValue(':id_questionario', $vetorDadosQuestionario['id_questionario']);
$insertQuestionario->bindValue(':observacoes', $questionario->buscaNomeQuestionario($vetorDadosQuestionario['id_questionario']));
$returnTransacton['insertQuestionario'] = $insertQuestionario->execute();
// pegando o ultimo ID inserido
$lastIdPergunta = $query->lastInsertId();
// inserindo as opções selecionadas.
$insertPerguntasQuestionario = $query -> prepare("INSERT INTO res_respostas (id_res_questionario, id_pergunta) SELECT :id_questionario, id_pergunta
FROM que_pergunta WHERE id_questionario = :id_questionario_base AND id_tipo_pergunta IN (:categoria_pergunta)");
$insertPerguntasQuestionario-> bindValue(':id_questionario', $lastIdPergunta);
$insertPerguntasQuestionario-> bindValue(':id_questionario_base', $vetorDadosQuestionario['id_questionario']);
$queryAdendoCategoriaQuestionario = implode(",", $vetorDadosQuestionario['array_categoria']);
$insertPerguntasQuestionario-> bindValue(':categoria_pergunta', $queryAdendoCategoriaQuestionario);
$returnTransacton['insertPerguntaQuestionario'] = $insertPerguntasQuestionario->execute();
// new SIS_debug($returnTransacton, 'returnTransacton');
// new SIS_debug("INSERT INTO res_questionario (id_perfil, id_questionario, data_inicio, observacoes) VALUES ({$user->dadosUsuarioSession('id_perfil')}, {$vetorDadosQuestionario['id_questionario']}, NOW(), {$questionario->buscaNomeQuestionario($vetorDadosQuestionario['id_questionario'])} )");
// new SIS_debug("INSERT INTO res_respostas (id_res_questionario, id_pergunta) SELECT {$lastIdPergunta}, que_pergunta.id_pergunta FROM que_pergunta WHERE id_questionario = {$vetorDadosQuestionario['id_questionario']} AND id_tipo_pergunta IN ($queryAdendoCategoriaQuestionario)", 'query test');
// new SIS_debug($queryAdendoCategoriaQuestionario, 'queryAdendoCategoriaQuestionario', true);
// new SIS_debug($vetorDadosQuestionario, 'vetorDadosQuestionario', true);
if(is_array($returnTransacton)){
if(in_array(false, $returnTransacton)){
$this->log->create(json_encode($returnTransacton)."Erro na Exclusao");
$result = false;
}else{ // Caso não tenha erro ele salva normalmente
$result = $query->commit();
}
}
// dadosUsuarioSession
}catch(Exception $e) {
echo "<pre>".$e->getMessage()."</pre>";
$excluirQuestinario->rollBack();
}
Toda e qualquer ajuda é bem vinda. ^^
Discussão (2)
Carregando comentários...