mysql – Laravel 4.2 BIT数据类型问题

前端之家收集整理的这篇文章主要介绍了mysql – Laravel 4.2 BIT数据类型问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

数据库表中有一个(1)类型的列.但它不像我预期的那样工作.

问题是

$invitee = new Invitee();
$invitee->name = "name1";
$invitee->email = "example@mail.com";
$invitee->isActive = 0;    // "b'0'",'0',false,are also not working
$invitee->save();

我需要在isActive列中放置一个0,但每当我尝试添加一个0的记录时,它的值为1.

我在here.发现了一个问题.但答案并没有描述问题的原因.很高兴,如果有人能解释这个问题.

最佳答案
具有位类型字段意味着无论何时插入/更新该字段,都需要使用原始值作为变通方法.

那是因为PDO默认会绑定这些值,它们将被视为字符串,因此bit将导致1:

DB::table('table')->insert(['bit_field' => 0]); // inserts 1
DB::table('table')->insert(['bit_field' => DB::raw(0)]); // inserts 0

如果可以的话,我建议将其改为tinyint.

猜你在找的MySQL相关文章