PHP Error "mysqli_query () expects at least 2 parameters, 1 given" when sending information from multiple input [closed]

-1

I'm making a page with a product value record, would you like to know how to Insert Into of values while ?

<table style="width: 100%;">
 <thead>
  <tr>
   <th>Item</th>
   <th>Código</th>
   <th>Produto</th>
   <th>Valor</th>
  </tr>
 </thead>
<tbody>
<?php while($dado_produto = $result_produtos->fetch_array()){ ?>
 <tr>
  <td>1</td>
  <td><?php echo $dado_produto['cod']; ?></td>
  <td><?php echo $dado_produto['descricao']; ?></td>
  <td><input type = "text" name="valor[<?php echo $dado_produto['cod']; ?>]"/></td>
 </tr>
<?php } ?> 
 </tbody>
</table>
</div> 
<input type="submit"/>
</form>    

The file that receives the value.php

I researched I used a code that I found on the internet for, but I can not, it is giving error.

<?php
header('Content-Type: text/html; charset=utf-8');
include_once("../../controle/conexao.php");
// Início da consulta
$sql = "INSERT INTO 'produtos' ('cod', 'valor') VALUES";

// Para cada elemento produto:
foreach($_POST['valor'] as $cod=>$val){
$produto = $cod['codigo'];
$valor = $val['valores'];

// Monta a parte consulta de cada produto
$sql .= " (NULL, '{$produto}', '{$valor}'),";}

// Tira o último caractere (vírgula extra)
$sql = substr($sql, 0, -1);

// Executa a consulta
mysqli_query($sql);
$cadastrados = mysqli_affected_rows();
?>

The error appears:

PHP Parse error: syntax error, unexpected T_VARIABLE in E: \ home \ value.php on line 10

Line 10 is a:

$sql .= " (NULL, '{$produto', '{$valor}'),";}

Can anyone help me what I'm doing wrong?

    
asked by anonymous 30.06.2017 / 16:02

2 answers

2

Using mysqli, it would look like this.

<?php
// Criando a conexão
$conn = new mysqli($server, $user, $password, $database);

// Verificando a conexão
if ($conn->connect_error) {
    die("Falhou a Conexão: " . $conn->connect_error);
}

// preparando o bind
$stmt = $conn->prepare("INSERT INTO (tabela) (nome, sobrenome, email) VALUES (?, ?, ?)");
//sss são variáveis tipo String. Consulte aqui: http://php.net/manual/pt_BR/mysqli-stmt.bind-param.php
$stmt->bind_param("sss", $nome, $sobrenome, $email);

//executando
$stmt->execute();

//Você pode executar várias vezes, em um for, por exemplo.

$firstname = "Maria";
$lastname = "Da Silna";
$email = "[email protected]";
$stmt->execute();

$firstname = "Julia";
$lastname = "dos Santos";
$email = "[email protected]";
$stmt->execute();


$stmt->close();
$conn->close();
?>
    
30.06.2017 / 16:23
2

If you are using PDO.

The best thing to do is to prepare your SQL, even to ensure some SQL Injection project.

$sql = 'INSERT INTO produtos VALUES (:cod,:valor)'

$sth = $conn->prepare($sql);
$stmt = $sth->execute(array(':cod' => 150, ':valor' => 10));
    
30.06.2017 / 16:10