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 guilhermefdavid
      Olá,
      tenho uma aplicação PHP com algumas funções que não estão funcionando na hospedagem.
      Esta aplicação utiliza apenas conexão com banco de dados -> mysql_connect, mysql_select_db, entre outras de MYSQL.
      Alguma ideia de qual extensão, dentre as existentes na imagem anexa deveria(m) estar ativada(s)?
       
      Um abraço!

    • By jganjos
      Boa tarde senhores.
      Estou gerando esta array com o PHP
       
      Array ( [header] => Array ( [ico] => fas fa-building [tit] => Empresa [lab] => Cadastro da Empresa ) [forms] => Array ( [RAZAO] => Array ( [tit] => Razão Social ) [NFANTASIA] => Array ( [tit] => Nome Fantasia [lin] => 1 [col] => 10 ) [STATUS] => Array ( [tit] => Status [typ] => switch [val] => 1,0 [lin] => 1 [col] => 2 ) [INSCRICAO] => Array ( [tit] => Inscrição [lin] => 2 [col] => 4 ) [IE] => Array ( [tit] => Insc. Estadual [lin] => 2 [col] => 4 ) [IM] => Array ( [tit] => Insc. Municipal [lin] => 2 [col] => 4 ) [CEP] => Array ( [tit] => CEP [lin] => 3 [col] => 4 [btn] => search ) [TIPO_END] => Array ( [typ] => hidden ) [ENDERECO] => Array ( [tit] => Endereço [lin] => 4 [col] => 9 ) [NUM_END] => Array ( [tit] => Número [lin] => 4 [col] => 3 ) [BAIRRO] => Array ( [tit] => Bairro [lin] => 5 [col] => 6 ) [COMPL] => Array ( [tit] => Complemento [lin] => 5 [col] => 6 ) [MUNICIPIO] => Array ( [tit] => Município [lin] => 6 [col] => 9 ) [UF] => Array ( [tit] => Estado [typ] => list [tab] => estados [lin] => 6 [col] => 3 ) [TEL1] => Array ( [tit] => Telefone [msk] => phone [lin] => 7 [col] => 6 ) [TEL2] => Array ( [tit] => Telefone [msk] => phone [lin] => 7 [col] => 6 ) [EMAIL] => Array ( [tit] => e-mail [typ] => email [lin] => 8 [col] => 6 ) [SITE] => Array ( [tit] => Site da empresa [typ] => website [lin] => 8 [col] => 6 ) ) ) Preciso listar os valores da Array *FORMS* e seus respectivos filhos mas não estou conseguindo utilizando o foreach.
      Alguém teria uma dica?
    • By helkton
      galera preciso criar um array que pegue os itens adicionais de cada ITEM  escolhido...
      vou tentar explicar...
      tenho uma pagina com as categorias do CARDÁPIO
      LANCHES - AÇAI - SALGADOS - PIZZAS
      CADA categoria contem seus devidos itens tipo...
      LANCHES 1-xFrango 2-xSalada 3-xBacon AÇAI 1-Copo 300ml 2-Copo 500ml 3-Copo 700ml até esta funcionando, cada item que o usuário escolher, salvo em uma S_SESSION['itens'] 
      agora vamos supor que, esses itens tenham adicionais, já criei um <?php if(){}?> e ele já faz essa verificação, então se o item LANCHES 1=XFRANGO NÃO conter adicional para ser escolhido ele simplesmente irá ser adicionado no carrinho, AGORA se o item tiver adicional para ser escolhido, irá abrir um MODAL com os adicionais disponíveis para o ITEM
      Agora digamos que o AÇAÍ) 1-COPO 300ML tenha adicional eu abro o meu modal com os seguintes adicionais:
      FRUTAS 1-Morango 1,00 2-Banana 1,00 3-Uva 1,00 COMPLEMENTOS 1-Ninho 1,00 2-Coco Ralado 1,00 3-Castanha 1,00 COBERTURA 1-Chocolate 1,00 2-Leite condensado 1,00 3-Morango 1,00 ADICIONAIS 1-Nutella 1,00 2-Bis 1,00 3-KitKat 1,00 então como pego esses adicionais e salvo em cada ITEM escolhido pelo usuário e se possivel somar esses adicionais que tenha valores também
    • By Rafaellaranjo
      Estou sofrendo a um tempo com consumo alto de CPU em meu servidor na maioria dos casos em virtude do MYSQL, trabalho com PHP e APACHE e MYSQL. Realizei inúmeras tentativas para acabar com o alto consumo porém todas fracassadas. O evento costuma ocorrer sempre nos mesmos horários, parte da manhã por volta de 9:30/11:00 e parte da tarde entre 14:00/16:00. Meu servidor possui hardware suficiente para suportar, porem acredito que esteja mal configurado. Estou encaminhando alguns processos que observo estar executando em excesso obtidos através do ps aux.
      dovecot/pop3-login
      dovecot/imap-login
      dovecot/lmtp -L
      php-fpm: pool app (o que mais aparece)
      Ps: utilizo um servidor CENTOS 7
       
×

Important Information

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