Php 如何防止在数据库中插入零?

Php 如何防止在数据库中插入零?,php,mysql,mysqli,Php,Mysql,Mysqli,我使用的是mysqli,当我在数据库中插入时,一切看起来都很好,除了如果行为null,它将被0插入,而不是保留为空。我怎样才能解决这个问题?为什么它显示为零而不是空白 这是我的数据库中的外观: id ref_number amount 1 143545646 3456 2 13545646 0 3 12324343 0 这就是我想展示的: id ref_number amount 1 1435

我使用的是mysqli,当我在数据库中插入时,一切看起来都很好,除了如果行为null,它将被0插入,而不是保留为空。我怎样才能解决这个问题?为什么它显示为零而不是空白

这是我的数据库中的外观:

id      ref_number    amount
1       143545646     3456
2       13545646       0
3       12324343       0
这就是我想展示的:

 id   ref_number   amount
 1    143545646    3456
 2    13545646         
 3    12324343
如果没有金额或金额的值为空,则必须留空

以下是我插入的代码:

$sql = "INSERT INTO transaction_detail (`transaction_id`,`ref_number`,`amount`)
          VALUES ('$transaction_id','$ref_number',$amount) ";

    $query = $conn->query($sql);

如果没有金额,则该字段应为空,但显示为零0。

该字段的数据类型可能为INT NOT NULL。数据类型INT不能像Varchar/char/text一样为空

为了防止这种情况,您可以更改表并接受空值,在检索时,您可以使用函数处理空值

编辑

编辑2

编辑3

您可以在php中检查金额是否大于零

$amount = (int) $amount;
if($amount > 0){
    $sql = "INSERT INTO transaction_detail (`transaction_id`,`ref_number`,`amount`)
          VALUES ('$transaction_id','$ref_number',$amount) ";

        $query = $conn->query($sql);
}

也许你的数据库字段类型设置为INT。你们为什么否决我的问题?如果你想不明白,那就问我好吗?对不起,如果我的英语不好english@OlaitanMayowa:如果是,我该怎么办?如果我说的是amount,那么我的数据类型是否应该是int?您能否确认数据字段类型是否为int?您是否更改了表以接受null值?你得到的是空值吗?如果是-IFNULL将起作用!-请参阅我答案中mysql文档的链接。我如何更改我的表以接受空值?你能举个例子吗?你能举个例子说明我如何使用IFNULL吗?答案分别添加了,你可能会发现更多关于如果我想设陷阱的解释,如果值为零,它将不会插入?我怎么可能那样做呢?
SELECT IFNULL(amount, 'what ever value you like') amount FROM transaction_detail;
$amount = (int) $amount;
if($amount > 0){
    $sql = "INSERT INTO transaction_detail (`transaction_id`,`ref_number`,`amount`)
          VALUES ('$transaction_id','$ref_number',$amount) ";

        $query = $conn->query($sql);
}