Boas, Tou a usar mysqli statements para introduzir dados numa tabela. A tabela tem campos como not null. O problema é quando um dos campos a inserir na BD é nulo o mysqli insere esse mesmo campo como uma string vazia o que não deveria ser possível pois deveria dar erro na query sql. Tou a usar MySQL. Aqui fica o código que tou a usar: PHP: $query = mysqli_prepare($conectar, "INSERT INTO user (`name`, `phone`, `user`, `password`, `admin`, `email`) VALUES(?,?,?,?,AES_ENCRYPT(?,'my_secret_key_to_encrypt'),?)"); mysqli_stmt_bind_param($query, 'ssssss', $nome, $telefone, $username, $password, $admin, $email); Apenas $admin pode ser null. Alguém me pode orientar no porque de mesmo que $nome =""; ou $password=""; entre outras, estas serem inseridas na BD como ""? Obrigado e boas festas.
Porque estás a inserir uma empty string nesses campos, e uma empty string não é o mesmo que NULL, é considerado dados na mesma. Já se meteres $nome = NULL ao invés de $nome = "" o mais certo será dar erro porque aqui sim, nome é NULL o que vai contra as definições que definiste da BD. Mas de forma a prevenires este tipo de casos, faz esse tipo de validações antes de executar a query (bem como aplicares-lhes as funções da praxe, trim, htmlspecialchars, mysqli_real_escape_string) e só executas essa porção de código quando estiver tudo sanitizado e a 100%.