php mysql准备语句将0传递到允许为空的十进制列中
我有一个带有十进制列的Mysql表,允许php mysql准备语句将0传递到允许为空的十进制列中,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个带有十进制列的Mysql表,允许NULLs。如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL 如何获取值0而不是NULL PS:我使用以下代码插入值 $query2 = "insert into TableName (Id, anotherId, date, `MinValue`, `MaxValue`, `oneMoreId`, `Comment`) values (?, ?, '2016-06
NULL
s。如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL
如何获取值0而不是NULL
PS:我使用以下代码插入值
$query2 = "insert into TableName
(Id, anotherId, date,
`MinValue`, `MaxValue`,
`oneMoreId`, `Comment`)
values
(?, ?, '2016-06-23',
?, ?,
?, ?)";
$stmt = $connection->prepare($query2);
$stmt->bind_param('iiddis', $Id, $anotherId,
$minValue, $maxValue, $oneMoreId,
$comment);
$stmt->execute();
编辑:在@YourCommonSense的回答之后,我发现我的代码中有一个错误。在我发布的行上方,我将值从0更改为NULL
。对不起,是我的错,伙计们
如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL
事实并非如此
如果通过0,则它将存储为0。但如果传递NULL,那么它将被存储为NULL 因此,您传递的是空值,而不是0。
检查您的值并在必要时转换它们 如果我在PHP的prepared语句中将0作为double传递,那么我的0在Mysql列中将变为NULL 事实并非如此 如果通过0,则它将存储为0。
但如果传递NULL,那么它将被存储为NULL 因此,您传递的是空值,而不是0。
检查您的值并在必要时强制转换它们。您可以测试
0
值,并在执行之前用单引号封装0
。$value==0?“$value':$value
etc~它应该允许输入零而不是空值Yep,成功了。谢谢您可以测试0
值,并在执行之前用单引号封装0
。$value==0?“$value':$value
etc~它应该允许输入零而不是空值Yep,成功了。谢谢伙计,你真厉害!在我的代码中,我之前将值从0更改为NULL。非常感谢。ps:读了你的PHP解释学后,我真的是你的粉丝:)伙计,你太棒了!在我的代码中,我之前将值从0更改为NULL。非常感谢。附言:我是你的粉丝,读了你的phpdelusions:)