Php MySQL位数据类型始终变为1
我面临MySQL位数据类型的一些意外行为。通过执行以下PHP代码:Php MySQL位数据类型始终变为1,php,mysql,Php,Mysql,我面临MySQL位数据类型的一些意外行为。通过执行以下PHP代码: $query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD) VALUES ('".$offer."','".$requestid."','".$periodkind."')"; 位数据类型的周期列始终变为1,即使PHP变量$periodkind等于0!!我无法解释。如果试图在MySQL中手动将1更改为0,则没有问题 你知道为什么会
$query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD)
VALUES ('".$offer."','".$requestid."','".$periodkind."')";
位数据类型的周期列始终变为1,即使PHP变量$periodkind等于0!!我无法解释。如果试图在MySQL中手动将1更改为0,则没有问题
你知道为什么会这样吗
非常感谢如果您的列是位数据类型,您不必将var包装到“'”中,因为它将被解释为字符串,您需要位 尝试删除单引号,如果不起作用,尝试将$periodkind转换为如下所示的bool:
(bool)$periodkind
只有当MySQL在位数据类型中将false转换为0,将true转换为1时,才使用PDO或mysqli?你为什么不使用语句准备呢 你必须这么做 但我相信您的快速解决方案(删除
periodkind
周围的单引号):
顺便问一下,您的位类型是BIT(1)?如果您有位,为什么要像字符串一样将其环绕在
“
?可以想象,插入字符串'0'
而不是整数0
会使MySQL将其存储为1
…您必须对此进行测试。
$query="INSERT INTO REQUESTS_OFFERS (PROPOSAL,REQUESTS_REQUESTID,PERIOD)
VALUES ('".$offer."','".$requestid."',".$periodkind.")";