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

时间:2015-06-30 05:26:30

标签: php mysql mysqli

我正在研究一个项目然后我遇到了这个问题。这是场景,当我在数据库中插入时,如果值为零则不能插入,但是当我检查我的数据库时,有零插入,我不知道我哪里出错或者我错过了捕获如果值等于零则不得插入。

以下是代码:

$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') " );
        }
    }  
}  

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

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

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

你的条件是

if(($ref_num) >0 ){

另请阅读intval()

答案 1 :(得分:0)

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