Column 'Activocirculation total' cannot be null

Asked

Viewed 465 times

1

I’m finding it very strange what’s happening because yesterday worked perfectly!

I created the following code:

require_once 'credenciais.php';

//pega dados do formulário de ativo e passivo circulante
$ac = isset($_POST['ac']) ? $_POST['ac'] : null;
$ae = isset($_POST['ae'])?$_POST['ae']:null;
$ad = isset($_POST['ad'])?$_POST['ad']:null;
$aco = isset($_POST['aco'])?$_POST['aco']:null;
$cr = isset($_POST['cr'])?$_POST['cr']:null;
$ncr11 = isset($_POST['ncr11'])?$_POST['ncr11']:null;
$ncr22 = isset($_POST['ncr22'])?$_POST['ncr22']:null;
$ncr33 = isset($_POST['ncr33'])?$_POST['ncr33']:null;
$ncr44 = isset($_POST['ncr44'])?$_POST['ncr44']:null;
$ncr55 = isset($_POST['ncr55'])?$_POST['ncr55']:null;
$est = isset($_POST['est'])?$_POST['est']:null;
$af = isset($_POST['af'])?$_POST['af']:null;
$da = isset($_POST['da'])?$_POST['da']:null;
$outc = isset($_POST['outc'])?$_POST['outc']:null;
$pc = isset($_POST['pc'])?$_POST['pc']:null;
$pee = isset($_POST['pee'])?$_POST['pee']:null;
$pef = isset($_POST['pef'])?$_POST['pef']:null;
$pco = isset($_POST['pco'])?$_POST['pco']:null;
$nfor = isset($_POST['nfor'])?$_POST['nfor']:null;
$for11 = isset($_POST['for11'])?$_POST['for11']:null;
$for22 = isset($_POST['for22'])?$_POST['for22']:null;
$for33 = isset($_POST['for33'])?$_POST['for33']:null;
$for44 = isset($_POST['for44'])?$_POST['for44']:null;
$for55 = isset($_POST['for55'])?$_POST['for55']:null;
$sal = isset($_POST['sal'])?$_POST['sal']:null;
$imp = isset($_POST['imp'])?$_POST['imp']:null;
$de = isset($_POST['de'])?$_POST['de']:null;
$adc = isset($_POST['adc'])?$_POST['adc']:null;


//insere banco na tabela de ativo e passivo circulante

$PDO = db_connect();
$sql_insere_ativopassivocirculante = "INSERT INTO ativopassivocirculante 
(AtivoCirculanteTotal, AtivoErratico, AtivoDisponiveis, 
AtivoCirculanteOperacionalTotal,    AtivoCRTotal, 
AtivoCRate30,AtivoCRde31a60, AtivoCRde61a90, AtivoCRacima90, 
AtivoCRInadimplentes, AtivoEstoque, AtivoAdiantForne, AtivoDespAnt, 
AtivoOutrosCirculantes, PassivoCirculanteTotal, PassivoEmprestimos, 
PassivoFinanciamentos, PassivoCirculanteOperacionalTotal, FornecedoresTotal,  
PassivoForate30, PassivoForde31a60, PassivoForde61a90, PassivoForacima90,  
PassivoForatrasados,  PassivoSalarios, PassivoImpostos, PassivoEstrutura , 
PassivoAdiantClientes, DataInclusao) VALUES (:ac, :ae, :ad, :aco, :cr, 
:ncr11, :ncr22, :ncr33, :ncr44, :ncr55, :est, :af, :da, :outc, :pc, :pee, 
:pef, :pco, :nfor, :for11, :for22, :for33, :for44, :for55, :sal, :imp, :de, 
:adc, CURRENT_DATE)";

 $insert_ativopassivocirculante = $PDO 
 >prepare($sql_insere_ativopassivocirculante);
 $insert_ativopassivocirculante-> bindParam(':ac',$ac );
 $insert_ativopassivocirculante-> bindParam(':ae',$ae );
 $insert_ativopassivocirculante-> bindParam(':ad',$ad );
 $insert_ativopassivocirculante-> bindParam(':aco',$aco );
 $insert_ativopassivocirculante-> bindParam(':cr',$cr );
 $insert_ativopassivocirculante-> bindParam(':ncr11',$ncr11 );
 $insert_ativopassivocirculante-> bindParam(':ncr22',$ncr22 );
 $insert_ativopassivocirculante-> bindParam(':ncr33',$ncr33 );
 $insert_ativopassivocirculante-> bindParam(':ncr44',$ncr44 );
 $insert_ativopassivocirculante-> bindParam(':ncr55',$ncr55 );
 $insert_ativopassivocirculante-> bindParam(':est',$est );
 $insert_ativopassivocirculante-> bindParam(':af',$af );
 $insert_ativopassivocirculante-> bindParam(':da',$da );
 $insert_ativopassivocirculante-> bindParam(':outc',$outc );
 $insert_ativopassivocirculante-> bindParam(':pc',$pc );
 $insert_ativopassivocirculante-> bindParam(':pee',$pee );
 $insert_ativopassivocirculante-> bindParam(':pef',$pef );
 $insert_ativopassivocirculante-> bindParam(':pco',$pco );
 $insert_ativopassivocirculante-> bindParam(':nfor',$nfor );
 $insert_ativopassivocirculante-> bindParam(':for11',$for11 );
 $insert_ativopassivocirculante-> bindParam(':for22',$for22 );
 $insert_ativopassivocirculante-> bindParam(':for33',$for33 );
 $insert_ativopassivocirculante-> bindParam(':for44',$for44 );
 $insert_ativopassivocirculante-> bindParam(':for55',$for55 );
 $insert_ativopassivocirculante-> bindParam(':sal',$sal );
 $insert_ativopassivocirculante-> bindParam(':imp',$imp );
 $insert_ativopassivocirculante-> bindParam(':de',$de );
 $insert_ativopassivocirculante-> bindParam(':adc',$adc );

 if($insert_ativopassivocirculante->execute()){
     header('Location: index.html');
 }else{
     echo "erro ao cadastrar";
     print_r($insert_ativopassivocirculante->errorInfo());
}

The error message you gave was:

error when registersArray ( [0] => 23000 [1] => 1048 [2] => Column 'Activating total' cannot be null )

When I replace null value to 0 (for example) in:

$ac = isset($_POST['ac']) ? $_POST['ac'] : null;

it saves the value "o" in the table. That is, it doesn’t seem to be "catching" the $_POST

Some light?

The HTML is like this:

<form method="POST" action="inserir.php" >
    <div id="circulantes">
        <div class="ativocirculante" id="ativocirculante">
            <h2>ATIVO CIRCULANTE<input type="text" placeholder="R$ 0,00" id="ac" name="ac" class="ValoresItensTOT" readonly/></h2>
            <h2>Ativo Errático (Financeiro) <input type="text" placeholder="R$ 0,00 aplicações" id="ae" name="ae" class="ValoresItens" /></h2>
            <h2>Disponíveis<input type="text" placeholder="R$ 0,00" id="ad" name="ad" class="ValoresItens" /></h2>
            <h2>ACO<input type="text" placeholder="R$ 0,00" id="aco" name="aco" class="ValoresItensTOT" readonly /></h2>
            <h2>Contas a receber<input type="text" placeholder="R$ 0,00" id="cr" name="cr" class="ValoresItensTOT" readonly /></h2>
            <h2 id="cr1">Até 30 dias<input type="text" placeholder="R$ 0,00" id="cr11"  name="ncr11" class="ValoresItens" /></h2>
            <h2 id="cr2">31 a 60 dias<input type="text" placeholder="R$ 0,00" id="cr22" name="ncr22" class="ValoresItens"/></h2>
            <h2 id="cr3">61 a 90 dias<input type="text" placeholder="R$ 0,00" id="cr33" name="ncr33" class="ValoresItens" /></h2>
            <h2 id="cr4">Acima de 90 dias<input type="text" placeholder="R$ 0,00" id="cr44" name="ncr44" class="ValoresItens" /></h2>
            <h2 id="cr5">(-) Inadimplentes<input type="text" placeholder="R$ 0,00" id="cr55" name="ncr55" class="ValoresItens" /></h2>
            <h2>Estoque<input type="text" placeholder="R$ 0,00" id="est" name="est" class="ValoresItens" /></h2>
            <h2>Adiant. a Fornecedores<input type="text" placeholder="R$ 0,00" id="af" name="af" class="ValoresItens"  /></h2>
            <h2>Despesas antecipadas<input type="text" placeholder="R$ 0,00" id="da" name="da" class="ValoresItens"  /></h2>
            <h2>Outros Circulantes<input type="text" placeholder="R$ 0,00" id="outc" name="outc" class="ValoresItens"  /></h2>

        </div>

        <div class="passivocirculante" id="passivocirculante">
            <h2>PASSIVO CIRCULANTE<input type="text" placeholder="R$ 0,00" id="pc" name="pc" class="ValoresItensTOT" readonly/></h2>
            <h2>Passivo Empréstimos<input type="text" placeholder="R$ 0,00 empréstimos" id="pee" name="pee" class="ValoresItens" /></h2>
            <h2>Passivo Financiamentos<input type="text" placeholder="R$ 0,00 financiamentos" id="pef" name="pef" class="ValoresItens"/></h2>
            <h2>PCO<input type="text" placeholder="R$ 0,00" id="pco" name="pco" class="ValoresItensTOT" readonly/></h2>
            <h2>Fornecedores a pagar<input type="text" placeholder="R$ 0,00" id="for" name="nfor" class="ValoresItensTOT" readonly/></h2>
            <h2 id="for1">Até 30 dias<input type="text" placeholder="R$ 0,00" id="for11" name="for11" class="ValoresItens"/></h2>
            <h2 id="for2">31 a 60 dias<input type="text" placeholder="R$ 0,00" id="for22" name="for22" class="ValoresItens"/></h2>
            <h2 id="for3">61 a 90 dias<input type="text" placeholder="R$ 0,00" id="for33" name="for33" class="ValoresItens"/></h2>
            <h2 id="for4">Acima de 90 dias<input type="text" placeholder="R$ 0,00" id="for44" name="for44" class="ValoresItens"/></h2>
            <h2 id="cr5">(+) Atrasados<input type="text" placeholder="R$ 0,00" id="for55" name="for55" class="ValoresItens" /></h2>
            <h2>Salários a pagar<input type="text" placeholder="R$ 0,00" id="sal" name="sal" class="ValoresItens"/></h2>
            <h2>Impostos a pagar<input type="text" placeholder="R$ 0,00" id="imp" name="imp" class="ValoresItens"/></h2>
            <h2>Despesas com estrutura<input type="text" placeholder="R$ 0,00" id="de" name="de" class="ValoresItens"/></h2>
            <h2>Adiantamento de clientes<input type="text" placeholder="R$ 0,00" id="adc" name="adc" class="ValoresItens"/></h2>
        </div>
    </div>
    <input type="submit" value="Salvar" class="btn btn-success" />
</form>
<div class="resp"></div>
<div class="ok"></div>

</body>

  • Put a var_dump($_POST); exit; first of all and puts here the result

  • Right. The result was:array(0) { }

3 answers

2

The message is saying that the column AtivoCirculanteTotal cannot be null, ie the field was created with NOT NULL. What is most likely occurring is that it is not being passed via POST the value of ac, that is, the variable $_POST['ac'] not this arrow.

In row 4 the program checks if the variable $_POST['ac'] this arrow. If not, assign null in the variable $ac, that null is passed via parameter to the PDO.

In short, the program is trying to insert null in a field that cannot be null.

What you can do is just continue the execution if the variable $_POST['ac'] is set:

require_once 'credenciais.php';

//pega dados do formulário de ativo e passivo circulante
if (isset($_POST['ac'])) {
    $ac = $_POST['ac'];
    $ae = isset($_POST['ae'])?$_POST['ae']:null;
    $ad = isset($_POST['ad'])?$_POST['ad']:null;
    $aco = isset($_POST['aco'])?$_POST['aco']:null;
    $cr = isset($_POST['cr'])?$_POST['cr']:null;
    $ncr11 = isset($_POST['ncr11'])?$_POST['ncr11']:null;
    $ncr22 = isset($_POST['ncr22'])?$_POST['ncr22']:null;
    $ncr33 = isset($_POST['ncr33'])?$_POST['ncr33']:null;
    $ncr44 = isset($_POST['ncr44'])?$_POST['ncr44']:null;
    $ncr55 = isset($_POST['ncr55'])?$_POST['ncr55']:null;
    $est = isset($_POST['est'])?$_POST['est']:null;
    $af = isset($_POST['af'])?$_POST['af']:null;
    $da = isset($_POST['da'])?$_POST['da']:null;
    $outc = isset($_POST['outc'])?$_POST['outc']:null;
    $pc = isset($_POST['pc'])?$_POST['pc']:null;
    $pee = isset($_POST['pee'])?$_POST['pee']:null;
    $pef = isset($_POST['pef'])?$_POST['pef']:null;
    $pco = isset($_POST['pco'])?$_POST['pco']:null;
    $nfor = isset($_POST['nfor'])?$_POST['nfor']:null;
    $for11 = isset($_POST['for11'])?$_POST['for11']:null;
    $for22 = isset($_POST['for22'])?$_POST['for22']:null;
    $for33 = isset($_POST['for33'])?$_POST['for33']:null;
    $for44 = isset($_POST['for44'])?$_POST['for44']:null;
    $for55 = isset($_POST['for55'])?$_POST['for55']:null;
    $sal = isset($_POST['sal'])?$_POST['sal']:null;
    $imp = isset($_POST['imp'])?$_POST['imp']:null;
    $de = isset($_POST['de'])?$_POST['de']:null;
    $adc = isset($_POST['adc'])?$_POST['adc']:null;


    //insere banco na tabela de ativo e passivo circulante

    $PDO = db_connect();
    $sql_insere_ativopassivocirculante = "INSERT INTO ativopassivocirculante (AtivoCirculanteTotal, AtivoErratico, AtivoDisponiveis, 
AtivoCirculanteOperacionalTotal,    AtivoCRTotal, 
AtivoCRate30,AtivoCRde31a60, AtivoCRde61a90, AtivoCRacima90, 
AtivoCRInadimplentes, AtivoEstoque, AtivoAdiantForne, AtivoDespAnt, 
AtivoOutrosCirculantes, PassivoCirculanteTotal, PassivoEmprestimos, 
PassivoFinanciamentos, PassivoCirculanteOperacionalTotal, FornecedoresTotal,  
PassivoForate30, PassivoForde31a60, PassivoForde61a90, PassivoForacima90,  
PassivoForatrasados,  PassivoSalarios, PassivoImpostos, PassivoEstrutura , 
PassivoAdiantClientes, DataInclusao) VALUES (:ac, :ae, :ad, :aco, :cr, 
:ncr11, :ncr22, :ncr33, :ncr44, :ncr55, :est, :af, :da, :outc, :pc, :pee, 
:pef, :pco, :nfor, :for11, :for22, :for33, :for44, :for55, :sal, :imp, :de, 
:adc, CURRENT_DATE)";

    $insert_ativopassivocirculante = $PDO->prepare($sql_insere_ativopassivocirculante);
    $insert_ativopassivocirculante-> bindParam(':ac',$ac );
    $insert_ativopassivocirculante-> bindParam(':ae',$ae );
    $insert_ativopassivocirculante-> bindParam(':ad',$ad );
    $insert_ativopassivocirculante-> bindParam(':aco',$aco );
    $insert_ativopassivocirculante-> bindParam(':cr',$cr );
    $insert_ativopassivocirculante-> bindParam(':ncr11',$ncr11 );
    $insert_ativopassivocirculante-> bindParam(':ncr22',$ncr22 );
    $insert_ativopassivocirculante-> bindParam(':ncr33',$ncr33 );
    $insert_ativopassivocirculante-> bindParam(':ncr44',$ncr44 );
    $insert_ativopassivocirculante-> bindParam(':ncr55',$ncr55 );
    $insert_ativopassivocirculante-> bindParam(':est',$est );
    $insert_ativopassivocirculante-> bindParam(':af',$af );
    $insert_ativopassivocirculante-> bindParam(':da',$da );
    $insert_ativopassivocirculante-> bindParam(':outc',$outc );
    $insert_ativopassivocirculante-> bindParam(':pc',$pc );
    $insert_ativopassivocirculante-> bindParam(':pee',$pee );
    $insert_ativopassivocirculante-> bindParam(':pef',$pef );
    $insert_ativopassivocirculante-> bindParam(':pco',$pco );
    $insert_ativopassivocirculante-> bindParam(':nfor',$nfor );
    $insert_ativopassivocirculante-> bindParam(':for11',$for11 );
    $insert_ativopassivocirculante-> bindParam(':for22',$for22 );
    $insert_ativopassivocirculante-> bindParam(':for33',$for33 );
    $insert_ativopassivocirculante-> bindParam(':for44',$for44 );
    $insert_ativopassivocirculante-> bindParam(':for55',$for55 );
    $insert_ativopassivocirculante-> bindParam(':sal',$sal );
    $insert_ativopassivocirculante-> bindParam(':imp',$imp );
    $insert_ativopassivocirculante-> bindParam(':de',$de );
    $insert_ativopassivocirculante-> bindParam(':adc',$adc );

    if($insert_ativopassivocirculante->execute()){
        header('Location: index.html');
    }else{
        echo "erro ao cadastrar";
        print_r($insert_ativopassivocirculante->errorInfo());
    }
} else {
    echo "Não foi passado o ac";
}
  • Hi Roberto, thanks for the suggestion, but I believe it didn’t work. Did not return data to MYSQL and also, when we force it to pass the $ac variable it says that the next ($ae) cannot be null.

  • So you can’t pass null for these fields. How are you sending the parameters to the PHP?

  • What’s weird is that it was working perfectly yesterday, something happened that stopped working. I believe the problem is yes in setting the variable $_POST for all variables. Strange

  • puts his HTML in the question also.

  • Done! I added HTML

0

I found that it was just a "space" here: 'city name '

$nome_cidade = isset($_POST['nome_cidade ']) ? $_POST['nome_cidade '] : null;

0

thanks for the help but I was able to find the answer. My XAMPP server, for some reason, was not connecting Mysql. I reinstalled the software and the code went back to working perfectly.

Thanks :-)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.