如果值等于零,如何防止在数据库中插入


How to prevent inserting in database if value is equal to zero?

我正在做一个项目,然后遇到了这个问题。在这种情况下,当我在数据库中插入时,如果值为零,它就不能插入,但当我检查数据库时,有零被插入,我不知道哪里出了问题,或者我只是错过了一个陷阱,即如果值等于零,它决不能插入。

这是代码:

$ref_array = explode(',' , $ref_number);
$po_array = explode(',' , $po_number);
$inv_array = explode(',' , $inv_number);
$asn_array = explode(',' , $asn_number);
$adj_array = explode(',' , $adj_number);
$amount_array = explode(',' , $amount);
// count the number of po,invoice,asn and adj
if(count($po_array) != count($ref_array) || count($inv_array) != count($ref_array) || count($asn_array) != count($ref_array) || count($adj_array) != count($ref_array) || count($ref_array) != count($amount_array)){
    foreach ($ref_array as $i => $ref_num){
        $po_num = isset($po_array[$i]) ? $po_array[$i] : '' ; //leave blank there is no $po_array[$i]
        $inv_num = isset($inv_array[$i]) ? $inv_array[$i] : '';
        $asn_num = isset($asn_array[$i]) ? $asn_array[$i] : '' ;
        $adj_num = isset($adj_array[$i]) ? $adj_array[$i] : '' ;
        $amount_num = isset($amount_array[$i])? $amount_array[$i] : '';

        if(intval($ref_num) != 0 ){
            $conn->query ("INSERT INTO transaction_detail (`transaction_id`,`ref_number`,`po_number`,`inv_number`,`asn_number`,`adj_number`,`amount`)
                    VALUES ('$transaction_id','$ref_num','$po_num','$inv_num','$asn_num','$adj_num','$amount_num') " );
        }
    }  
}  

有人能帮我吗?

您只需从条件中删除intval,因为它用于Get the integer value of a variable

第二次检查$ref_num变量大于零

你的条件是

if(($ref_num) >0 ){

同时读取intval()

检查transaction_detail表中po_number字段的默认值是否为0。