我面临MySQL BIT数据类型的一些意外行为。通过执行以下PHP代码:
$query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD)
VALUES ('".$offer."','".$requestid."','".$periodkind."')";
即使PHP变量$ periodkind等于0,BIT数据类型的句点列总是变为1!我无法解释。如果尝试在MySQL内部手动更改1到0,则没有问题...
你知道为什么会这样吗?
非常感谢
答案 0 :(得分:1)
如果您的列是BIT数据类型,则不必将var包装成“'”,因为它将被解释为字符串而您需要一点。
尝试删除单引号,如果它不起作用,请尝试将$ periodkind转换为这样的bool:
(bool)$periodkind
只有MySQL在BIT数据类型
中将false转换为0并且true为1答案 1 :(得分:1)
你必须这样做!
但我相信快速解决方法(删除periodkind
周围的单引号):
$query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD)
VALUES ('".$offer."','".$requestid."',".$periodkind.")";
你的BIT类型是 BIT(1)?