Insert Into Do not Send Values [closed]

-8

I have this code to send values to a table in the database, it is not displaying any, it is simply not sending the values

<?php
include "../../lib/inc_con.php";



$mesa = $_POST['mesa'];
$tamanho = $_POST['tamanho'][0];
$quantidade = $_POST['qtd'];
if(empty($_POST['valor'])) { $adicional = "Nenhum"; } else { $adicional = implode(',', $_POST['valor']);  }
$hiddentotal = $_POST['hiddentotal'];
date_default_timezone_set('America/Sao_Paulo'); 
$mysqldata = new DateTime(); 
$data = $mysqldata->format(DateTime::ISO8601);
$hora = date('H:i:s');
$produto_id1 = $_POST['produto_id1'];
if (empty($_POST['observacao'])){ $observacao = "Nenhuma"; } else { $observacao = $_POST['observacao'];  }
$produzido = '0';
$valortotal = $quantidade * $hiddentotal;
$asplo = $_POST['asplo'];
$conta = '0';



$pdo=conectar();
$inserirpedido=$pdo->prepare("INSERT INTO pedidos FROM produtos(mesa,tamanho,qtd,adicional,valortotal,data,produto_id1,produzido,observacao,asplo,conta,hora,horadeproducao) VALUES ('$mesa', '$tamanho', '$quantidade', '$adicional', '$valortotal', '$data', '$produto_id1', '$produzido', '$observacao', '$asplo')");
$inserirpedido->execute();

?>
    
asked by anonymous 18.12.2015 / 12:46

1 answer

3

There is no point in using a newer API and reading the old vices (mysql_ *), do not pass the values directly into the SQL statement, separate pass use the placeholders to make the association.

The insert has two errors, one from lost

INSERT INTO pedidos FROM produtos

More columns than specified values.

"INSERT INTO pedidos(
mesa,
tamanho,
qtd,
adicional,
valortotal,
data,
produto_id1,
produzido,
observacao,
asplo,
conta,
hora,
horadeproducao) VALUES <---- 13 campos
('$mesa', 
'$tamanho',
'$quantidade',
'$adicional',
'$valortotal',
'$data',
'$produto_id1',
'$produzido',
'$observacao',
'$asplo')"  <--- 10 valores
         <--- e valores para conta, hora e horadeproducao?

The code with placesholders looks like this:

$inserirpedido = $pdo->prepare("INSERT INTO pedidos FROM produtos(mesa,tamanho,qtd,adicional,valortotal,data,produto_id1,produzido,observacao,asplo,conta,hora,horadeproducao) VALUES (:mesa, :tamanho, :quantidade, :adicional, :valortotal, :data, :produto_id1, :produzido, :observacao, :asplo, :conta, :hora, :horadeproducao)");

$inserirpedido->bindValue(':mesa', $mesa);
$inserirpedido->bindValue(':tamanho', $tamanho);
$inserirpedido->bindValue(':quantidade', $quantidade);
$inserirpedido->bindValue(':adicional', $adicional);
$inserirpedido->bindValue(':valortotal', $valortotal);
$inserirpedido->bindValue(':data', $data);
$inserirpedido->bindValue(':produto_id1', $produto_id1);
$inserirpedido->bindValue(':produzido', $produzido);
$inserirpedido->bindValue(':observacao', $observacao);
$inserirpedido->bindValue(':asplo', $asplo);
$inserirpedido->bindValue(':conta', $conta);
$inserirpedido->bindValue(':horadeproducao', $horadeproducao);
$inserirpedido->bindValue(':hora', $hora);

$inserirpedido->execute();

Related:

How to prevent SQL injection in my PHP code

Using PDO is the safest way to connect to a DB with PHP?

    
18.12.2015 / 13:15