Jump to content
teteuvec

Utilização do mysqli_real_escape_string em array_map para inserir valore no mysql

Recommended Posts

Boa noite pessoal,

 

Estou tendo problemas ao tentar adicionar dados utilizando mysqli. O array não está chegando correto no query, na verdade não chega correto para a linha $values = implode("', '", $escaped_values);.

Segue abaixo código, devo estar errando na sintaxe.

 

		unset($_POST['action']);
		$connect = connect(tupa);
		$columns = implode(", ",array_keys($_POST));
		$count = count($_POST);
		$escaped_values = array_map('mysqli_real_escape_string', array_fill(1,$count,$connect), array_values($_POST));
		$values = implode("', '", $escaped_values);
		$sql = "INSERT INTO people_records($columns) VALUES ('$values')";
		mysqli_query($connect, $sql) or die (mysqli_error(connect($connect)));
		header("Location: ../system.php");

 

Share this post


Link to post
Share on other sites

Utilize prepared statements ao invés do código que está realizando.

 

Você pode utilizar a função call_user_func_array para passar o array de parâmetros.

call_user_func_array(array($stmt, 'bind_param'), $params);

Para criar a query, você pode usar a solução do post no link abaixo:

https://forum.imasters.com.br/topic/472433-resolvido pdo-consulta-com-in/?do=findComment&comment=1875979

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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
    • By 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
       
    • By 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!
    • By 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;
    • By Carlos - Aracaju
      Olá, pretendo criar um sistema de sorteio de palavras onde o usuário coloca-se os nomes que quiser e quantos quiser, porem n consigo fazer com que o sorteio seja bem sucedido, não consigo achar uma solução, quem poder me ajudar, desde já agradeço
      esse é meu código:
      <?php if ($_POST) { $controle = 1; $tipo = 'nome'; $quantidade = $_POST['quant']; $rand = rand(1, $quantidade); $tdnome = ''; while($controle <= $quantidade){ $result = $tipo.$controle; $nomes = $_POST[$result]; echo $controle.' - '.$nomes . '<br />'; if ($controle < $quantidade) { $tdnome .= '"'.$nomes.'", '; } else{ $tdnome .= '"'.$nomes.'"'; } $controle++; } print '<br>'.$tdnome.'<br>'; echo "<br><b>sorteado: ".$array[$rand]."</b>"; } ?> <!DOCTYPE html> <html> <head> <title>sorteio</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script type="text/javascript"> var numero = 1; function adicionar() { numero++; $("#divPrincipal").append("<input type='text' name='nome"+numero+"' placeholder='nome "+numero+"' value='nome "+numero+"' /><br><br>"); $("#quant").val(numero); $("#numerodenomes").text(numero); } </script> </head> <body> <form name="teste" method="post" action=""> <!-- <textarea name="text"></textarea> --> <input id="quant" type="text" name="quant" value="1" style="display: none;" /> <p ><b>quantidade de nomes:</b> <q id="numerodenomes">1</q></p> <br><br><br><br> <div id="divPrincipal"> <input type="text" name="nome1" placeholder="nome 1" value="nome 1" /> <br><br> </div> <input type="submit" name="enviar" value="Enviar" /> </form> <a href="javascript: adicionar()">Adicionar</a> </body> </html>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.