Jump to content
clickanapolis

Atualização para no mysql da problema

Recommended Posts

Bom dia pessoal.

 

Atualizei para a versão mais atual do mysql e estou tendo problemas.

 

Vi que agora o mysql não aceita mais que a variavel venha em branco e que eu tenho que substituir o branco por null.

 

tentei assim mais não funciona:

 

if(empty($_POST['termino'])) {

$termino = "NULL";

} else {

$termino = $_POST['termino'];

}

if(empty($_POST['dataencerramento'])) {

$dataencerramento = "NULL";

} else {

$dataencerramento = $_POST['dataencerramento'];

}

if(empty($_POST['dataentrega'])) {

$dataentrega = "NULL"; 

} else {

$dataentrega = $_POST['dataentrega'];

}

$sql = mysqli_query($con, "update pacotes SET id_turma='$id_turma', dataabertura='$dataabertura', termino='$termino', dataencerramento='$dataencerramentofinal', dataentrega='$dataentrega', desconto='$desconto' where id_pacote = '$id'")  or die (mysqli_error($con));

As outras variaveis eu não trouxe mais tem elas pois da erro quando alguma data vem em branco e preciso colocar ela como null

Share this post


Link to post
Share on other sites

Thalles fiz uma query aqui rapidamente com pdo é da o mesmo problema quando a data vem vazia.

 

include_once 'conexao.php';

$nome = (isset($_POST['nome'])) ? $_POST['nome'] : NULL;
$cpfcnpj = (isset($_POST['cpfcnpj'])) ? $_POST['cpfcnpj'] : NULL;
$dataprimeiro = (isset($_POST['dataprimeiro'])) ? $_POST['dataprimeiro'] : NULL;

$result_msg_cont = "INSERT INTO clientes (nome, cpfcnpj, dataprimeiro) VALUES (:nome, :cpfcnpj, :dataprimeiro)";

$insert_msg_cont = $conn->prepare($result_msg_cont);
$insert_msg_cont->bindValue(':nome', $nome);
$insert_msg_cont->bindValue(':cpfcnpj', $cpfcnpj);
$insert_msg_cont->bindValue(':dataprimeiro', $dataprimeiro);

if($insert_msg_cont->execute()){

	echo "Gravado";

}else{

	echo "Não Gravado";

	echo "\nPDOStatement::errorInfo():\n";
	$arr = $insert_msg_cont->errorInfo();
	print_r($arr);

}

 

Share this post


Link to post
Share on other sites

clickanapolis

Na verdade você precisa ver a definição das suas tabelas em seu banco de dados.

Pois em nenhuma versão do MySQL existe restrição para campos com brancos.

 

Exemplo:

1 cd_entry int(25)     NULO (Não)   AUTO_INCREMENT
2 cd_cliente int(10)     NULO (Não)  
3 tp_produto varchar(20) latin1_swedish_ci   NULO (Sim)  
4 tp_selecao varchar(15) latin1_swedish_ci  
NULO (Sim)  
 
5 tp_outros varchar(75) latin1_swedish_ci  
NULO (Sim)  
 

 

Para a tabela acima tenho que obrigatóriamente colocar no meu INSERT o VALUE (NULL) para o primeiro valor CD_ENTRY, pois ele é autoincrement, já para o campo CD_CLIENTE eu não posso atribuir um valor NULO, então preciso colocar o VALUE (0) para ele pois se trata de um campo numérico e não consigo colocar spaces (vazio).

 

Já para os outros campos que tem a opção de NULO = SIM, eu posso atribuir os valores VALUE(NULL) para eles, pois permitem ser NULOS, os valores VALUE(' ') vazio, que é diferente de NULO e claro, posso também atribuir valores VALUE('Produto1', 'Selecao1', 'Outros1') ou valores como SPACES.

 

Exemplo dos INSERT

INSERT INTO TB_EXEMPLO (cd_entry, cd_cliente, tp_produto, tp_selecao, tp_outros) VALUES (NULL, 1, 'Produto1', '', NULL);

INSERT INTO TB_EXEMPLO (cd_entry, cd_cliente, tp_produto, tp_selecao, tp_outros) VALUES (NULL, 2, 'Produto2', 'Selecao1', '');

INSERT INTO TB_EXEMPLO (cd_entry, cd_cliente, tp_produto, tp_selecao, tp_outros) VALUES (NULL, 3, 'Produto3', 'Selecao2', 'VL');

INSERT INTO TB_EXEMPLO (cd_entry, cd_cliente, tp_produto, tp_selecao, tp_outros) VALUES (NULL, 4, '', '', '');

INSERT INTO TB_EXEMPLO (cd_entry, cd_cliente, tp_produto, tp_selecao, tp_outros) VALUES (NULL, 5, NULL, NULL, NULL);

 

MINHA TABELA; repare que sua dúvida pelo NULL se resumi na imagem abaixo na coluna TP_OUTROS onde tenho representado abaixo os valores VAZIO registros de 1 até 6, NULL registro 7 e com valores registros de 8 até 10.

image.png.2c815eda10247d4153a1580e2e6571f6.png

 

Então, no seu caso, acho que você precisa ver o especificado em suas tabelas.

 

MAS de qualquer forma, caso você queira colocar um valor NULL basta você atribuir o valor NULL sem aspas para a sua variável.

Exemplo: $tipo_produto = NULL;

 

Espero que a explicação fique clara e que eu tenha lhe ajudado de certa forma.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By henriquers
      Estou com um problema com o Select2, ele tem um campo de busca mas não esta filtrando corretamente e não estou entendo o motivo, sem utilizar o AJAX colocando os options manualmente ele funciona corretamente, mas trazendo os dados via AJAX ele não funciona o campo de busca.
      Se aguem poder me dar uma luz agradeço a ajuda.
       

       
      Nessa imagem estou tentando filtrar apenas para os itens que tenha LUVA na descrição, mas não funciona, posso colocar qual quer coisa que ele não faz o filtro
       
      Abaixo segue meu codigo
       
      HTML
      <!DOCTYPE HTML PUBLIC> <HTML> <HEAD> <TITLE> Select2 </TITLE> <link href="select2/select2.css" rel="stylesheet" type="text/css" /> <script src="https://code.jquery.com/jquery-latest.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/i18n/pt-BR.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.css" rel="stylesheet"/> <script> $(document).ready(function(){ $("#selUser").select2({ language: "pt-br", ajax: { url: "get_dados.php", type: "GET", dataType: 'json', delay: 200, data: function (params) { return { q: params.term, // search term page: params.page }; }, processResults: function (response) { return { results: response }; }, cache: true }, width: "20%", closeOnSelect: true, }); }); </script> </head> <body> <select id='selUser' style='width: 200px;'> <option value='0'>- Search user -</option> </select> </body> </html> get_dados.php
      <?php include './conn_orcl.php'; $select="SELECT PRO_CODPRO PRODUTO,TRIM(PRO_DESCRI) DESCRICAO FROM F_PRODS WHERE PRO_LOCEST='ALMOX' AND PRO_STATUS = 'AT' ORDER BY DESCRICAO"; $parse=oci_parse($conn,$select); oci_execute($parse); $data = array(); while($row=oci_fetch_array($parse)){ $data[] = array("id"=>$row['PRODUTO'], "text"=>$row['PRODUTO']." - ".$row['DESCRICAO']); }; echo json_encode($data); ob_end_flush(); oci_free_statement($parse); oci_close($conn); ?>  
    • By Jack Oliveira
      Boa noite pessoal
       
       
      Quero fazer uma verificação em tempo real no banco de dados antes de clicar para cadastra, ver se o nome que esta no input name="nome_empresa_link"   ver se ele já existe no banco de dados. no caso so permitir preencher outro campos se o input que esta sendo verificado estiver correto ou seja tudo ok...
       
      Lembrando este input ele é preenchido conforme é digitado no input name="nome_empresa"  Não sei se isso interfere ao fazer a verificação
       
      HTML
             <div class="col-md-6">         <div class="form-group">          <label for="nome_empresa">Nome</label>          <input type="text" autocomplete="off" id="nome_empresa" maxlength="100"  name="nome_empresa" class="form-control input_nome_empresa" required placeholder="Nome da Loja">        </div>      </div>      <div class="col-md-6">       <div class="form-group">        <label for="nome_empresa_link">Url Amigavél</label> <em id="resposta"></em>        <input type="text" autocomplete="off"  id="nome_empresa_link" name="nome_empresa_link" maxlength="100" class="form-control input_nome_empresa_link" required placeholder="/ Use maiúsculas, minúsculas e underline.">        <?= $site; ?><span><em style="color: green;" id="nome_empresa_link"></em>/</span>      </div>    </div> No PHP fazer verificação fiz isso...
      <?php if(isset($_POST['nome_empresa_link'])) { $nome_empresa_link=$_POST['nome_empresa_link']; $checkdata = DBCount('ws_empresa','nome_empresa_link',"WHERE nome_empresa_link = '{$nome_empresa_link}'"); if ($checkdata >= 0) { //echo "Um nome igual este já esta sendo usado no sistema"; swal('Atenção!!!', 'A URL AMIGAVÉL não disponivél para cadastro \n tente com outro nome!', 'warning', 'Fechar'); } /*else { echo "<font color='green'>Disponivél...</font>"; } */ exit(); } ?> No ajax fiz assim
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script language="javascript"> var nome_empresa_link = $("#nome_empresa_link"); nome_empresa_link.blur(function() { $.ajax({ url: 'notificacao/checkdata.php', type: 'POST', data:{"nome_empresa_link" : nome_empresa_link.val()}, success: function(data) { console.log(data); data = $.parseJSON(data); $("#resposta").text(data.nome_empresa_link); } }); }); </script> Só que não retorna nada
       
       
    • By DuduBacteria
      Tenho uma Tabela chamada "VENDAS" com os seguintes atributos:
       
       
      Eu quero retornar em MySQL o total de vendas ocorridos durante 1 semana, entre o dia atual até seis dias atrás.
       
      Ficando mais ou menos assim:
       
      SEMANA              TOTAL DE VENDIDO segunda                250.00 domingo                430.00 sábado                 160.50 sexta                  300.03 quinta                 300.03 quarta                 300.03 terça                  300.03
    • By terra
      Olá,
       
      preciso enviar os últimos 10 registros para um único e-mail, mas o código abaixo esta enviando separado
       
       
      agradeço qualquer ajuda
    • By eStevo2734
      Pequei esse código, porém não funciona por nada pela minha capacidade que não é muita em PHP, já mudei ele de todas as formas possível e não funciona.
       
      <?php if(!empty($_FILES['xml']['tmp_name'])){ $arquivo = new DomDocument(); $arquivo->load($_FILES['xml']['tmp_name']); //var_dump($arquivo); $linhas = $arquivo->getElementsByTagName("processo"); //var_dump($linhas); $primeira_linha = true; foreach($linhas as $linha){ if($primeira_linha == false){ // pegar o valor natureza="Produtos e/ou Serviço" no elemento <marca> $nome = $linha->getElementsByTagName("nome")->item(0)->nodeValue; echo "Nome: $nome <br>"; $email = $linha->getElementsByTagName("status")->item(1)->nodeValue; echo "Status: $email <br>"; echo "<hr>"; } $primeira_linha = false; } } ?>  
      O arquivo em XML é beemmm longo
      <?xml version="1.0" encoding="UTF-8" ?> <revista numero="2620" data="23/03/2021"> <processo numero="922151156" data-deposit <despachos> <despacho codigo="IPAS009" nome="Publ </despachos> <titulares> <titular nome-razao-social="HERIK DE </titulares> <marca apresentacao="Mista" natureza="P <nome>SOTEN</nome> </marca> <classes-vienna> <classe-vienna codigo="27.5.1" edicao <classe-vienna codigo="28.3" edicao=" <classe-vienna codigo="26.2.7" edicao <classe-vienna codigo="29.1.15" edica </classes-vienna> <lista-classe-nice> <classe-nice codigo="41"> <especificacao>Agente artístico; li <status>Pendente</status> </classe-nice></lista-classe-nice> <procurador>TENAX SERVIÇOS DE CONSULTOR </processo> <processo numero="920178898"> <despachos> <despacho codigo="IPAS029" nome="Defe </despachos> <titulares> <titular nome-razao-social="DEIVISSON </titulares> <lista-classe-nice> <classe-nice codigo="25"> <especificacao>Bandanas;Bermudas;Bo <status>Deferida</status> </classe-nice> </lista-classe-nice> </processo> Os valores que estou tentando pegar são <nome>
      <status>. Mas também queria tentar pegar os
      valores nome-razao-social="..." e natureza. Penso que
      pode ter algo a ver com o tamanho do arquivo que é um
      pouco maior do que o habitual, girando em torno de
      30 MB e no total vão ter que tirar as informações 22 109
      que é o número de vezes que esse modelo de exemplo
      se repete no documento Mas como disse não sei muito
      sobre PHP é uma suposição)...
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.