Erro no INSERT INTO [RESOLVIDO]

1. Erro no INSERT INTO [RESOLVIDO]

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 15/07/2021 - 22:00h

Boa noite amigo VOL

Estou com problema em um codigo, eu uso ele no computador com xampp e funciona corretamente, agora quando eu subo na hospedagem ele não faz o insert porem tambem na aparesenta nenhum erro, Segue:

if(isset($_POST['cadastrar'])){
$chamado = $_POST['chamado'];
$usuario = $_POST['usuario'];
$contato = $_POST['contato'];
$grupo = $_POST['grupo'];
$motivo = $_POST['motivo'];
$aberto = date("d/m/Y");

$sql = mysqli_query($conexao, "INSERT INTO chamados SET chamado='$chamado', usuario='$usuario', contato='$contato', grupo='$grupo', motivo='$motivo', responsavel='Roberto', aberto='$aberto', status='pendente.png' ");
echo "<script>location.href='index.php';</script>";

}


O que pode ser?

Valeu Abraço


  


2. MELHOR RESPOSTA

Rodrigo Kulb
RodrigoKulb

(usa Ubuntu)

Enviado em 16/07/2021 - 11:53h

Você tem as 2 colunas em sua tabela sim conforme query:

CREATE TABLE `chamados` (
`id` int(10) NOT NULL,
`chamado` varchar(15) NOT NULL,
`usuario` varchar(40) NOT NULL,
`contato` varchar(11) NOT NULL,
`grupo` varchar(30) NOT NULL,
`motivo` varchar(500) NOT NULL,
`aberto` varchar(10) NOT NULL,
`fechado` varchar(10) NOT NULL,
`responsavel` varchar(20) NOT NULL,
`acao` varchar(500) NOT NULL,
`status` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Altere para NOT NULL para NULL assim você não precisa enviar sempre o valor.
Mas precisa enviar a query conforme informei acima porque mesmo assim ainda exite algum erro.

3. Re: Erro no INSERT INTO [RESOLVIDO]

Rodrigo Kulb
RodrigoKulb

(usa Ubuntu)

Enviado em 15/07/2021 - 22:28h

Olá vamos analisar os pontos que normal acontece em produção.
Como você falou que não apresentou erro, veja se está habilitado o short tags alterando a tag <? para <?php
Se não resolver coloque um print 'ok'; dentro do if do POST para verificar se ele entra nesse if.
E por fim coloque um print no $conexao para ver se ele está retornando true.


4. Re: Erro no INSERT INTO

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 15/07/2021 - 22:31h

Inseri o codigo abaixo

if (mysqli_query($conexao, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conexao);
}


e retornou isso

Error:
Field 'fechado' doesn't have a default value


Obs: o UPDATE esta indo normal, mais o INSERT NÃO

"Acode" eu por favor rsrsrs tenho de soltar hoje para o cliente hehe


5. Re: Erro no INSERT INTO [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 16/07/2021 - 05:42h


asparion escreveu:

Inseri o codigo abaixo

if (mysqli_query($conexao, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conexao);
}


e retornou isso

Error:
Field 'fechado' doesn't have a default value


Obs: o UPDATE esta indo normal, mais o INSERT NÃO

"Acode" eu por favor rsrsrs tenho de soltar hoje para o cliente hehe


O erro diz que o campo "fechado" não possui um valor, mas no teu código INSERT INTO não tem um campo "fechado".
Verifique na tua linha de UPDATE se tem esse campo e veja se não está faltando esse campo no INSERT.
No banco tem esse campo "fechado"?


6. Re: Erro no INSERT INTO

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 16/07/2021 - 11:12h

nao tem esse campo. nao sei porque aparece. estranho. pois em outra hospegadem e no computador local usando xampp vai normal, segue codigo:

<?php include 'conexao.php';

// Insere dados no banco
if(isset($_POST['cadastrar'])){
$chamado = $_POST['chamado'];
$usuario = $_POST['usuario'];
$contato = $_POST['contato'];
$grupo = $_POST['grupo'];
$motivo = $_POST['motivo'];
$motivo = mb_strtolower($motivo, 'UTF-8');
//$motivo = strtolower($motivo);
$aberto = date("d/m/Y");

$sql = mysqli_query($conexao, "INSERT INTO chamados SET chamado='$chamado', usuario='$usuario', contato='$contato', grupo='$grupo', motivo='$motivo', responsavel='Roberto', aberto='$aberto', status='pendente.png' ");
if (mysqli_query($conexao, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conexao);
}

}




Segue Banco:

-- phpMyAdmin SQL Dump
-- version 4.9.7
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Tempo de geração: 16-Jul-2021 às 11:16
-- Versão do servidor: 5.7.34-cll-lve
-- versão do PHP: 7.3.28

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Banco de dados: `robertov_asparion`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `chamados`
--

CREATE TABLE `chamados` (
`id` int(10) NOT NULL,
`chamado` varchar(15) NOT NULL,
`usuario` varchar(40) NOT NULL,
`contato` varchar(11) NOT NULL,
`grupo` varchar(30) NOT NULL,
`motivo` varchar(500) NOT NULL,
`aberto` varchar(10) NOT NULL,
`fechado` varchar(10) NOT NULL,
`responsavel` varchar(20) NOT NULL,
`acao` varchar(500) NOT NULL,
`status` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Índices para tabelas despejadas
--

--
-- Índices para tabela `chamados`
--
ALTER TABLE `chamados`
ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `chamados`
--
ALTER TABLE `chamados`
MODIFY `id` int(10) NOT NULL AUTO_INCREMENT;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;




7. Re: Erro no INSERT INTO

Rodrigo Kulb
RodrigoKulb

(usa Ubuntu)

Enviado em 16/07/2021 - 11:21h

Exatamente conforme informado pelo Buckminster sua tabela tem o campo fechado e é obrigatório definir valor e no seu SQL vc não está enviado. Basta adicionar na query.



$sql = mysqli_query($conexao, "INSERT INTO chamados SET chamado='$chamado', usuario='$usuario', contato='$contato', grupo='$grupo', motivo='$motivo', responsavel='Roberto', aberto='$aberto', status='pendente.png', fechado=' ' ");


ou altera para Default null


8. Re: Erro no INSERT INTO [RESOLVIDO]

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 16/07/2021 - 11:27h


Amigos olha a bizarrice rsrsrs
Coloquei fechado='' (mesmo nao tendo esse campo na minha tabela), ai apareceu:

Error:
Field 'acao' doesn't have a default value


agora coloquei acao='' (mesmo nao tendo esse campo na minha tabela) agora apareceu isso:

Error: 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1


e agora? buguei



9. Re: Erro no INSERT INTO [RESOLVIDO]

Rodrigo Kulb
RodrigoKulb

(usa Ubuntu)

Enviado em 16/07/2021 - 11:30h

Faz o seguinte, iguala a query a uma variável. Para fazer um print dela.
Exemplo:

$query = "INSERT INTO chamados SET chamado='$chamado', usuario='$usuario', contato='$contato', grupo='$grupo', motivo='$motivo', responsavel='Roberto', aberto='$aberto', status='pendente.png' ";
print $query;
$sql = mysqli_query($conexao, $query);





10. Re: Erro no INSERT INTO

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 16/07/2021 - 11:40h

Opa olha vou resumir aqui para a gente entender, agora esta incluindo. apos eu colocar

..............fechado='', acao='' ");


ele incluiu no banco mais relata esse erro:

1Error: 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line


o que nao faz sentido é ter de colocar fechado e acao sendo que nao tenho essas colunas na minha tabela


11. Re: Erro no INSERT INTO [RESOLVIDO]

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 16/07/2021 - 11:48h

Pode ser o método de conexão?


<?php

$hostname = "localhost";
$database = "banco";
$username = "user";
$password = "senha";

$conexao = mysqli_connect($hostname, $username, $password);
$banco = mysqli_select_db($conexao, $database);
mysqli_set_charset($conexao,'utf8');

?>



12. Re: Erro no INSERT INTO [RESOLVIDO]

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 16/07/2021 - 11:57h


Amigo agora eu entendi, é que o (fechado e acao) eu nao tenho no formulario, muito obrigado, vou testar



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts