Php 如何防止在数据库中插入零?
我使用的是mysqli,当我在数据库中插入时,一切看起来都很好,除了如果行为null,它将被0插入,而不是保留为空。我怎样才能解决这个问题?为什么它显示为零而不是空白 这是我的数据库中的外观: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
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);
}