Я столкнулся с той же проблемой. Обычно эта ошибка возникает из-за того, что клиент закрыл свое соединение, а сервер все еще пытается писать на этом клиенте. Поэтому убедитесь, что ваш клиент имеет свое соединение открытым до тех пор, пока сервер не выполнит свой выходной поток. И еще одно: Дон не забыл закрыть входной и выходной поток.
Надеюсь, это поможет. И если вы все еще сталкиваетесь с проблемой, чем кратко расскажите о своей проблеме здесь.
Для MySQL 5.0.3 и выше, можно использовать BIT
. В руководстве говорится:
С MySQL 5.0.3, Тип данных bit используется для хранения значений битового поля. Тип BIT (M) включает устройство хранения данных значений Мбит. M может колебаться от 1 до 64.
Иначе, согласно руководству MySQL можно использовать bool и булевскую переменную, которые являются в данный момент псевдонимами tinyint (1):
Bool, булевская переменная: Эти типы являются синонимами для TINYINT (1). Значение нуля считают ложью. Ненулевые значения считают верными.
MySQL также указывает что:
Мы намереваемся реализовать полную булеву обработку типа, в соответствии со стандартным SQL, в будущем выпуске MySQL.
Ссылки: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
При использовании БУЛЕВА типа это искажается к TINYINT (1). Это является лучшим, если Вы хотите использовать стандартизированный SQL и не возражаете против этого, поле могло бы содержать из значения диапазона (в основном что-либо, что не является 0, будет 'верно').
ПЕРЕЧИСЛЕНИЕ ('Ложь', 'Верная'), позволит Вам использовать строки в своем SQL, и MySQL сохранит поле внутренне как целое число, где 'Ложь' =0 и 'Истинные' =1 на основе порядка Перечисление определяются.
MySQL 5 In + можно использовать НЕМНОГО (1) поле для указания на 1-разрядный числовой тип. Я не полагаю, что это на самом деле использует любого меньше пространства в устройстве хранения данных, но снова позволяет Вам ограничивать возможные значения к 1 или 0.
Все вышеупомянутое будет использовать приблизительно ту же сумму устройства хранения данных, поэтому лучше выбирать тот, который Вы находите самыми легкими работать с.
Я использую TINYINT (1) для хранения булевых значений в Mysql.
я не знаю, существует ли какое-либо преимущество для использования этого... Но если я не ошибаюсь, mysql может сохранить булевскую переменную (BOOL), и это хранит его как tinyint (1)
http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html
BOOL
и BOOLEAN
синонимы TINYINT(1)
. Нуль false
, что-либо еще true
. Больше информации здесь .
На этот вопрос ответили, но я решил добавить свои 0,02 доллара. Я часто использую CHAR (0), где '' == true и NULL == false.
Из mysql docs
CHAR (0) также довольно хорош, когда вам нужен столбец, который может принимать только два значения: столбец, определенный как CHAR (0) NULL, занимает только одно бит и может принимать только значения NULL и '' (пустая строка).