Error inserting into the database

0

I'm getting an error while trying to insert into the database. See below.

<?php

    define("CMD_CRIAR_POST",    0);
    define("CMD_BUSCAR_POSTS", 1);
    define("CMD_EDITAR_POST",   2);
    define("CMD_EXCLUIR_POST",  3);
    define("CMD_PUBLICAR_POST",     4);
    define("CMD_REVERTER_POST",     5);

    define("CMD_CRIAR_CATEG",   6);
    define("CMD_EXCLUIR_CATEG",     7);
    define("CMD_ADICIONAR_CATEG_POST",  8);
    define("CMD_REMOVER_CATEG_POST",    9);
    define("CMD_OBTER_POSTS_CATEG",     10);

    define("CMD_ADICIONAR_AUTOR",   11);
    define("CMD_REMOVER_AUTOR",     12);

    $param_autor;

    $bd_ok = false;

    function acessa_bd($comando){

        global 
        $bd_ok,
        $param_autor,
        $param_titulo,
        $param_conteudo;

        try {

            if(!$bd_ok){

                $servidor = "localhost";
                $usuario = "root";
                $senha = "*****";
                $nomeDB = "sistema_blog";

                $conn = new PDO("mysql:host=$servidor;dbname=$nomeDB", $usuario, $senha);
                // configura o modo de erro para exceção
                $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);




                $inserir = $conn->prepare("
                    insert into :tabela(:colunas)
                    values(:valores);
                ");

                $consultar = $conn->prepare("
                    select :colunas
                    from :tabela;
                ");

                $deletar = $conn->prepare("
                    delete from :tabela
                    where :coluna_cond=:valor_cond;
                ");


                $alterar_titulo_post = $conn->prepare("
                    update postagens
                    set titulo=:novo_titulo
                    where post_id=:post_id;
                ");

                $alterar_conteudo_post = $conn->prepare("
                    update postagens
                    set conteudo=:novo_conteudo
                    where post_id=:post_id;
                ");

                $publicar_reverter_post = $conn->prepare("
                    update postagens
                    set publicado=:estado
                    where post_id=:post_id;
                ");

                $bd_ok = true;
            }

            switch($comando){
                case CMD_CRIAR_POST:
                    //$tabela = "postagens";
                    //$colunas = "autor_id, titulo, conteudo";
                    //$valores = $param_autor . $conn->quote($param_titulo) . $conn->quote($param_conteudo);
                    $inserir->execute(array(":tabela"=>"postagens", ":colunas"=>"autor_id, titulo, conteudo", ":valores"=>$param_autor . $conn->quote($param_titulo) . "," . $conn->quote($param_conteudo)));
                    break;


            }


        }
        catch(PDOException $e){

            // $conn->rollback();
            echo "Erro: " . $e->getMessage();
            die("\nErro ao conectar com a base de dados");          
        }
    }

    $param_autor = 1;
    $param_titulo = "Olá Mundo";
    $param_conteudo = "Este é um texto";
    acessa_bd(CMD_CRIAR_POST);


?>
  

Error: SQLSTATE [42000]: Syntax error or access violation: 1064 You have   an error in your SQL syntax; check the manual that corresponds to your   MySQL server version for the right syntax to use near   '' posts' ('author_id, title, content') values ('1 \' Hello   World \ ', \' This' at line 1 Error connecting to database

    
asked by anonymous 03.05.2016 / 02:22

0 answers