msqli statements

DaZ

Power Member
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%.
 
Back
Topo