Mysqli INSERT INTO Not working [closed]

-1

I have a code that inserts records into the database, it is not displaying any errors, it simply is not sending the data to the database

The code worked before, but as mysql_ * became obsolete, I had to update, and then it stopped working.

here is the code

<?php
include "../../lib/inc_con.php";
session_start();
$mesa = $_POST['mesa'];
$tamanho = $_POST['tamanho'];
$quantidade = $_POST['qtd'];
$adicional = implode(',', $_POST['adicional']);
$hiddentotal = $_POST['hiddentotal'];
date_default_timezone_set('America/Sao_Paulo'); 
$mysqldata = new DateTime(); 
$data = $mysqldata->format(DateTime::ISO8601);
$produto_id1 = utf8_encode($_POST['produto_id1']);
$atendente_id = $_SESSION['id'];
$observacao = $_POST['observacao'];
$produzido = '0';
$valortotal = $quantidade * $hiddentotal;
$asplo = $_POST['asplo'];


$inserir = $conexao->query("INSERT INTO pedidos (mesa, tamanho, qtd, adicional, valortotal, data, produto_id1, atendente_id, produzido, observacao, asplo) 
values ('$mesa', '$tamanho', '$quantidade', '$adicional', '$valortotal', '$data', '$produto_id1', '$atendente_id', '$produzido', '$observacao', '$asplo'") or die (mysqli_error()); 
if($inserir){
    echo "Inserido";
} else {
    echo $inserir->error;
}

?>

inc_cong.php file

<?php

error_reporting(0);
ini_set(“display_errors”, 0 );

$hostname = "localhost";
$username = "root";
$password = "";
$dbdatabase = "moclient";

$conexao = new mysqli($hostname, $username, $password, $dbdatabase);
if($conexao->connect_error){
    echo "Conexao:";?><span class="ls-tag-danger">Erro!</span>
<?php
}else{ 
    echo "Conexao:";?><span class="ls-tag-success">OK!</span>
<?php }

?>
    
asked by anonymous 01.11.2015 / 05:31

2 answers

2

When in development use this:

<?php
error_reporting(E_ALL|E_STRICT); //Irá mostrar qualquer erro

$hostname = "localhost";
$username = "root";
$password = "";
$dbdatabase = "moclient";

$conexao = new mysqli($hostname, $username, $password, $dbdatabase);
if($conexao->connect_error){
    echo "Conexao:";?><span class="ls-tag-danger">Erro!</span>
<?php
}else{ 
    echo "Conexao:";?><span class="ls-tag-success">OK!</span>
<?php }

?>

In case you said it returns:

  

Returns Connection: OK!

But this is just the connection, you should see the error at this point, you are using two error checks:

$inserir = $conexao->query("INSERT INTO pedidos (mesa, tamanho, qtd, adicional, valortotal, data, produto_id1, atendente_id, produzido, observacao, asplo) 
values ('$mesa', '$tamanho', '$quantidade', '$adicional', '$valortotal', '$data', '$produto_id1', '$atendente_id', '$produzido', '$observacao', '$asplo'") or die (mysqli_error()); //Erro aqui, abaixo não é executado
if($inserir){
    echo "Inserido";
} else {
    echo '', $inserir->error;//Este erro
}

You have used or unnecessarily, and another detail you are using object-oriented format, so perhaps mysqli_error is coming empty.

Use this:

$inserir = $conexao->query("INSERT INTO pedidos (mesa, tamanho, qtd, adicional, valortotal, data, produto_id1, atendente_id, produzido, observacao, asplo) 
values ('$mesa', '$tamanho', '$quantidade', '$adicional', '$valortotal', '$data', '$produto_id1', '$atendente_id', '$produzido', '$observacao', '$asplo'");

if($inserir){
    $inserir->close(); //Fecha a execução da query query
    echo "Inserido";
} else {
    echo 'Erro: ', $inserir->error;//Exibe o erro
}

I recommend that you use exactly as the documentation describes:

(I recommend the documentation in English because some pages in Portuguese have wrong information - link ) / sub>

When you send the script to production (pro site) you can use it like this:

<?php
error_reporting(E_ALL|E_STRICT); //Irá mostrar qualquer erro

Additional

The session_start(); should come before any echo , print or text, so do so:

<?php
session_start();
include "../../lib/inc_con.php";
    
01.11.2015 / 19:34
-1

Is the commit set to true?

If it is not, this is possibly the solution to your problem. And in this case, use $mysqli->query('SET AUTOCOMMIT = 1');

    
01.11.2015 / 16:37