Error inserting in Mysql

Asked

Viewed 68 times

0

I created a form with registration system with images and strings and worked perfectly.

Only I tried to add another product without leaving the page and now the form with the class I created doesn’t work anymore, does anyone have any idea what might have happened?

A Function:

function cadastroComFoto($tabela, $dados){
    $con = conectar();

    $nomeArquivo = $_FILES["imagem"]["name"];
    $nomeTemporario = $_FILES["imagem"]["tmp_name"];
    $tamanhoArquivo = $_FILES["imagem"]["size"];
    $caminho = 'uploads/';

    $arquivoArray = explode(".", $nomeArquivo);
    $extensao = end($arquivoArray);
    $arquivo = $caminho.md5(time().rand(3212, 15452)).'.'.$extensao;

    if (!is_dir($caminho)) {
        mkdir($caminho);
        chmod($caminho, 777);
    }

    if (move_uploaded_file($nomeTemporario, $arquivo)) {
    foreach($_POST as $key => $val){
//Percorre os indices passados por POST armazanando em $key e os valores em $val
    $campo[] = $key; // Cria um array $campo com os indices
    $valor[] = "'$val'"; // Cria um array $valor com os valores


    $campos = implode(",", $campo); // Junta os indices de $campo com virgula
    $valores = implode(',', $valor); // Junta os valores de $valor com virgula

}

   // Prepara a inserção no banco de dados
    $inserir = $con->prepare("INSERT INTO $tabela($campos, imagem) VALUES($valores,'$arquivo')");
   $inseri = $inserir->execute(); // Execute a inserção

   if ($inserir) { // Caso a inserção ocorra bem exibira uma mensagem de sucesso.
    echo '<div class="alert alert-success" role="alert">Salvo com sucesso!</div>';
   }
   else { // Caso a inserção ocorra mal exibira uma mensagem de erro.
   echo '<div class="alert alert-danger" role="alert">Erro ao inserir no banco de dados!</div>';
   }
   unset($campos); //Apaga os valores passados por POST --
   unset($valores);// -- para que o usuario não precise sair da pagina e voltar de novo para efetuar outra inserção.
}
}

The call of the function:

<?php //Chama a função inserir caso tenha algum dado em POST (includes/conexao)
                if ($_POST) {
                  cadastroComFoto('produtos', $_POST); } ?>

The form:

<form class="form-horizontal" method="POST" action="" enctype="multipart/form-data">
                  <fieldset>

                    <!-- Form Name -->
                    <legend>Novo Produto</legend>

                    <!-- Text input-->
                    <div class="form-group">
                      <label class="col-md-1 control-label" for="nome">Nome</label>  
                      <div class="col-md-6">
                        <input id="nome" name="nome" type="text" placeholder="" class="form-control input-md" required="">

                      </div>
                    </div>

                    <!-- Text input-->
                    <div class="form-group">
                      <label class="col-md-1 control-label" for="imagem">Imagem:</label>  
                      <div class="col-md-2">
                        <input type="file" name="imagem"/>
                      </div>
                    </div>

                    <!-- Textarea -->
                    <div class="form-group">
                      <label class="col-md-1 control-label" for="inputDefault">Descrição <br /> <small>Evite grandes textos</small></label>
                      <div class="col-md-9">
                        <textarea rows="10" id="area1" cols="120" name="descricao"></textarea>
                      </div>
                    </div>

                    <!-- Text input-->
                    <div class="form-group">
                      <label class="col-md-1 control-label" for="destaque">Destaque:</label>  
                      <div class="checkbox">
                                <label>
                                    <input type="checkbox" name="destaque">Produto em destaque <br>
                                    <small>Selecione esta opção se deseja que o produto apareceça na pagina principal</small>
                                </label>
                            </div>
                    </div>


                    <!-- Button -->
                    <div class="form-group">
                      <label class="col-md-1 control-label" for="salvar"></label>
                      <div class="col-md-5">
                        <button id="salvar" class="btn btn-primary btn-lg" >Salvar</button>
                      </div>
                    </div>

                  </fieldset>
                </form>
  • Hello, Rafael! Error occurs?

  • in the database what the id of that item has been added?

  • 1

    Add these commands in the first few lines of your PHP file to return the error message: ini_set('display_errors', 'On'); and error_reporting(E_ALL);

  • I used the var_dump to display the query result and is only returned null

  • The software you work on has no versioning?

  • 1

    make a print_r("INSERT INTO $tabela($campos, imagem) VALUES($valores,'$arquivo')"); die(); and see what returns in query.

  • This inside Function? I put Function inside a variable to do print_r but nothing appears

  • @Ivanferrer I put the function inside the $register variable and made a echo print_r($cadastrar); and what returns is 1

  • // Prepara a inserção no banco de dados&#xA; ***[coloca aqui]***&#xA; $inserir = $con->prepare("INSERT INTO $tabela($campos, imagem) VALUES($valores,'$arquivo')");&#xA; $inseri = $inserir->execute(); // Execute a inserção

  • 1

    You need to see the result of the query string before to know the problem.

  • @Ivanferrer I already discovered the Error, it was the server that was clogged and no more disk space...

Show 6 more comments
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.