Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Soares Alves

Erro de insert ao usar variavel

Recommended Posts

Boa tarde, Sou novo no fórum então não sei se estou no local certo.

Estou com problema ao fazer um insert com php. quando faço o insert colocando o valor direto dentro do comando da certo, ex: $result = pg_query($dbcon, "INSERT INTO categoria (categoria) VALUES ('Alves')");

Agora quando tento usar uma variável gera um erro em tela ex: 

$categoria = $_POST['vargas']; 

$result = pg_query($dbcon,"INSERT INTO categoria (categoria) VALUES '$categoria'");

 

segue em anexo imagem código, ainda sou novo com programação então o erro pode ser grosseiro 

1.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente isso:

1. se você esta usando um formulario c/ metodo post,
declare o campo do form assim:

$campodoformulario = $_POST['campodoformulario'];

2. na sql use a variavel:

"Insert into tabela(colunadatabela) values ('$campodoformulario')"

(aspas simples se for uma string, pesquise sobre) - atenção aos parenteses.

obs: esse procedimento funciona de inicio, mas pode ser inseguro, pesquise sobre prepared statments, bind values ou bind params

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Fernando C disse:

tente isso:

1. se você esta usando um formulario c/ metodo post,
declare o campo do form assim:


$campodoformulario = $_POST['campodoformulario'];

2. na sql use a variavel:


"Insert into tabela(colunadatabela) values ('$campodoformulario')"

(aspas simples se for uma string, pesquise sobre) - atenção aos parenteses.

obs: esse procedimento funciona de inicio, mas pode ser inseguro, pesquise sobre prepared statments, bind values ou bind params

Boa noite Fernando,

Muito obrigado pela ajuda, fazendo o que falou nao gerou erro mas nao respeitou o valor dentro da variavel, inseriu null, o codigo ficou assim:

 

 $categoria = $_POST['vargas'];
 $result = pg_query($dbcon,"INSERT INTO categoria (categoria) VALUES ('$categoria')");

 

Ele deveria inserir o valor VARGAS na coluna categoria certo?

2 horas atrás, washalbano disse:

depois de executar o pg_query(...
verifique se houve algum erro com pg_last_error($dbcon);
http://php.net/manual/pt_BR/function.pg-last-error.php

Boa noite Washalbano ,

Muito obrigado pela ajuda irei testar

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Luiz Henrique
      Olá,
       
      Preciso fazer uma inserção no DB de registros referente a pagamentos, quando for no crédito será realizado o insert com sua respectiva data de compensação e valor da parcela exemplo:
       3 parcelas de 100.00 e cada registro em seu devido mês:
      INSERT INTO tabela (valor, data) VALUES (100, 2022-08-17),(100, 2022-09-17),(100, 2022-10-17) É mais eficiente fazer da forma acima ou colocar 3 INSERT?
      Ou existe forma melhor de fazer isso?
       
      Obrigado.,
       
    • Por Carlos Antoliv
      Senhores, bom dia.
       
      tenho um campo status. Então, a ideia é mudar o status. Consigo alterar o status quando necessário. Daí, pensei em todas vez que alterar, salvar o id do usuário, data, hora, o último status alterado...
      consigo fazer isso com INSERT, depois do UPDATE.
       
      Nao uso trigger. Até tentei fazer, mas não saiu como eu queria.
       
      Então, para os maiores entendedores do assunto, a melhor prática seria a TRIGGER ou INSERT ? Melhor prática ou o que mais funciona na prática ?
       
      Alguém poderia dissertar sobre isso ?
      Vlw..abço
    • Por unset
      Olá, estou com uma falha de lógica pegando aqui se alguém puder ajudar
       
      Eu tenho um formulário tranquilo, como abaixo
      <label for="cidades" class="form-label">Cidades</label> <select class="form-select mb-3" name="cidades[]" id="cidades" multiple="multiple"> <option value="1">Cidade 1</option> <option value="2">Cidade 2</option> <option value="3">Cidade 3</option> <option value="4">Cidade 4</option> <option value="5">Cidade 5</option> </select>  
      Blz eu recebe os dados do formulário ou seja os ids da cidade certinho em um array 
       
      array(3) { [0]=> string(1) "2" [1]=> string(2) "3" [1]=> string(1) "5" }
      <?php $dados = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRIPPED); var_dump($dados); ?> Agora como inserir todos os ids no banco? utilizando um for? um while? algum exemplo?
       
      Pergunto pq ao tentar inserir no banco somente um registro é inserido e não todos do select
       
    • Por leandrodesouza14
      Tenho uma duvida.
       
      Estou recebendo dados de um formulário HTML através do método POST. Um desses dados provem de um campo Select com diversos Options.
       
      Eu vou inserir os dados recebidos dos diversos imputs em varias tabelas, qual das tabelas vai depender do que o usuário selecionar no Select.
       
      Por exemplo: Se a pessoa selecionar BMW no Select, os dados do restante do formulário devem ser inseridos na tabela BMW. / Se a pessoa selecionar Fiat no Select, os dados do restante do formulário devem ser inseridos na tabela Fiat.
       
      O codigo que desenvolvi ate agora foi esse:
       
      <form action="cadastrodeveiculo.php" method="post" name="cadastroveiculo"> <p> Fabricante: <select name="marca"> <option value="audi" >Audi</option> <option value="bmw">BMW</option> <option value="chevrolet">Chevrolet</option> <option value="citroen">Citroen</option> <option value="fiat">Fiat</option> <option value="ford">Ford</option> <option value="hyundai">Hyundai</option> <option value="honda">Honda</option> <option value="jeep">Jeep</option> <option value="mb">Mercedes-Benz</option> <option value="mitsubishi">Mitsubishi</option> <option value="nissan">Nissan</option> <option value="peugeot">Peugeot</option> <option value="renault">Renault</option> <option value="toyota">Toyota</option> <option value="volkswagen">Volkswagem</option> </select> Modelo: <input type="text" id="modelo" name="modelo" maxlength="50"> Versao: <input type="text" id="versao" name="versao" maxlength="100"> Ano: <input type="text" id="ano" name="ano" maxlength="12"> Link: <input type="text" id="link" name="link" maxlength="300"> </p> <input class="submit" type="submit" name="cadastrar" value="Cadastrar"> </form> O codigo PHP, da pagina cadastroveiculo.php e o seguinte:
       
      <?php $conn = mysqli_connect("localhost", "leandro", "123", "afxveiculos"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; $tabela = $_POST['marca']; $modelo = $_POST['modelo']; $versao = $_POST['versao']; $ano = $_POST['ano']; $link = $_POST['link']; $sql = "INSERT INTO (modelo, versao, ano, link) VALUES ('$modelo', '$versao', '$ano', '$link')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); header("location: cadastroesquema.html"); ?> Deixei o Insert Into vazio pois não sei que colocar la.
       
      Obrigado galera!
    • Por Koromon
      Olá galera,
      Criei um arquivo .bat para rodar comandos do MySQL automaticamente, com o agendador de tarefas do computador.
      Nesse arquivo .bat tem dois tipos de comandos:
      1. Inserir dados .txt em uma primeira tabela (I) no MySQL;
      2. Inserir os dados da primeira tabela (I) em outra (II) (para criar tipo um histórico de dados);
      O problema é que esse .bat só faz um dos comandos (inserir dados .txt na primeira tabela) o outro ele ignora.
      Se eu fizer manualmente pelo MySQL Workbench, roda tudo tranquilo. Alguém imagina o que pode estar acontecendo?

      Antigamente, eu tive esse mesmo problema em outro projeto, mas o motivo é que eu não colocava ponto e virgula (;) no comando problemático. Nisso, manual rodava, automático não.
      Mas aconteceu novamente (agora com o insert into), mas dessa vez eu coloquei o (;) e mesmo assim não resolveu.

      Código utilizado:
      insert into tabela1 (coluna1, coluna2, coluna3) 
      select coluna11, coluna22, coluna33 from tabela2;
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.