Column 'ActiveCirculatingTotal' can not be null

1

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

I have 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 while registeringArray ([0] => 23000 [1] => 1048 [2] => Column   'ActiveCirculatingTotal' can not be null)

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

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

It writes the value "o" to the table. That is, it seems that you are not "catching" $_POST

Any light?

HTML looks 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>
    
asked by anonymous 26.10.2017 / 17:36

2 answers

1

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

In line 4 the program checks if the $_POST['ac'] variable is set. If it is not, it assigns null to variable $ac , this null is passed via parameter to PDO .

In short, the program is trying to insert null into a field that can not be null.

What you can do is to just continue execution if the $_POST['ac'] variable 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";
}
    
26.10.2017 / 17:57
0

Thanks for the help but I managed to find the answer. My XAMPP server, for some reason, was not connecting MySQL. I reinstalled the software and the code worked perfectly again.

Thanks :-)

    
26.10.2017 / 22:36