我面对MySQL BIT数据类型的某些意外行为。通过执行以下PHP代码:

$query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD)
  VALUES ('".$offer."','".$requestid."','".$periodkind."')";


即使PHP变量$ periodkind等于0,BIT数据类型的period列也总是变为1!我无法解释。如果尝试在MySQL内部手动将1更改为0,则没有问题...

你知道为什么会这样吗?

非常感谢你

最佳答案

如果您的列是BIT数据类型,则不必将var包装到“”中,因为它将被解释为字符串,并且需要一点。

尝试删除单引号,如果它不起作用,请尝试将$ periodkind转换为这样的布尔值:

(bool)$periodkind


仅当MySQL在BIT数据类型中将false转换为0并将true转换为1时

关于php - MySQL BIT数据类型始终变为1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28904092/

10-16 04:02