php mysql准备语句将0传递到十进制列,其中允许NULL

时间:2016-08-16 22:04:06

标签: php mysql mysqli

我有一个带有十进制列的Mysql表,允许NULL s。如果我在PHP的预处理语句中将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。我的错,抱歉,伙计们!

1 个答案:

答案 0 :(得分:3)

  

如果我在PHP的预处理语句中将0作为double传递,则我的0在Mysql列中变为NULL。

事实并非如此。

如果传递0,则将其存储为0 但是如果你传递NULL,那么它将被存储为NULL。

因此,您传递的是NULL值,而不是0.
检查您的值并在必要时进行投射。