Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Porque o tipo boolean fica como tinyint no mysql?

Oi Pessoal, Eu executei no phpmyadmin a query:

alter table produtos add column usado boolean default false;

Porém quando fui verificar a estrutura do campo, vi que ele ficou com tinyint, porque isso?

Notei também, que de acordo com o resultado do exercício o código correto seria:

if(array_key_exists('usado', $_POST)) {
    $usado = "true";
} else {
    $usado = "false";
}

Mas se eu coloco essas "" no true e no false o valor de usado não é gravado na minha tabela, só fica zerado e não dá erro.

Muito obrigado.

3 respostas

Olá Allan,

o tamanho/valor de tinyint são apenas dois valores(0 e 1 por exp), e como o tipo boolean também só passa dois valores(verdadeiro ou falso) pode ser que seja por isso que mudou.

solução!

Como o colega de cima respondeu por DEFAULT (Padrão) fica tinyint devido ao seu tamanho reduzido (0 e 1) tiny (pequeno) int (inteiro) pequeno inteiro.

O sistema ja verifica que colunas do tipo boleanos são reduzidas.

Puxa, muito obrigado pessoal pelas respostas.