Inserir valor NULL via PHP no BD
Olá pessoal,
Possuo a seguinte INSERT
//INSTRUÇÃO MYSQL PARA INSERIR REGISTRO UNICO
$query_add = "
INSERT INTO contato
(chave_especial_user, nome, sobrenome, sexo, aniversario, telefone, celular, preferencial, email, face_url, twitter_url, insta_url, dado, grupo_id)
SELECT
'$chave_especial',
'$nome',
'$sobrenome',
'$sexo_x',
'$niver_junto',
'$fone_fixo',
'$celular',
'$preferencial',
'$email',
'$face_url',
'$twitter_url',
'$insta_url',
'$dado_perso',
'$_POST[grupo_id]'
FROM DUAL WHERE NOT EXISTS
(SELECT * FROM contato WHERE preferencial='$preferencial' and chave_especial_user='$chave_especial')
";Como o próprio comentário do código diz, ela insere registros únicos baseado em preferencial e chave_especial_user.
O que estou tentando fazer é que em todas as colunas, caso as variáveis correspondentes estejam vazias, seja adicionado como NULL no BD.
As minhas tabelas já estão cadastradas NULL e valor predefinido em NULL no MySQL.
Essas variáveis são de um script de importação de dados que eu desenvolvi.
A criação das variáveis estão assim:
//TRATO A COLUNA NOME DO CSV
$nome = !empty(array_key_exists('NOME',$x));
if($nome == FALSE){ $nome = 'NULL'; }else{ $nome = $x["NOME"];}
Nesta parte eu verifico se tenho a chave NOME (e várias outras) que é equivalente ao Cabeçalho da planilha que o meu usuário importa.
Se essa chave do array for FALSE tenho a variável $nome como NULL, se não for FALSE, tenho o nome que foi preenchido na planilha.
Já tentei de todas as formas mas em meu BD sempre é salvo com valores em branco ao invés de NULL ou então é salvo com a palavra NULL e assim a coluna não tem efetivamente o valor NULL.
Exceto as colunas preferencial e chave_especial_user, todas as demais podem ter dados NULL
Alguma sugestão de alteração da query para conseguir inserir esses registros como NULL?
Discussão (0)
Carregando comentários...