1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

msqli statements

Discussão em 'Programação' iniciada por DaZ, 23 de Dezembro de 2012. (Respostas: 1; Visualizações: 585)

  1. DaZ

    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.
     
  2. ravager

    ravager Suspenso

    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%.
     

Partilhar esta Página