Laravel 4.2 BIT 数据类型问题

Laravel 4.2 BIT datatype issue(Laravel 4.2 BIT 数据类型问题)
本文介绍了Laravel 4.2 BIT 数据类型问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

there is a bit(1) type column in database table. but its not working as i expected.

问题是

$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 但每次我尝试添加记录时它的值 1一个 0.

I need to put a zero 0 in the isActive column but its getting value 1 every time when i try to add a record with a 0.

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

and i found a question in here.. but the answers are not describing the cause of the problem. glad if someone can explain the issue.

推荐答案

拥有 bit 类型字段意味着您在插入/更新该字段时需要使用原始值作为解决方法.

Having bit type field means that you need to use raw values as a workaround whenever you are inserting/updating that field.

这是因为 PDO 默认会绑定这些值,它们会被当作字符串处理,因此 bit 会产生 1:

That's because PDO by default will bind these values and they will be treated as strings, thus bit will result in 1:

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

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

And I suggest changing it to tinyint if you could.

这篇关于Laravel 4.2 BIT 数据类型问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)