簡體   English   中英

如何避免使用Perl從csv向mysql插入不為null的字段?

[英]How to avoid inserting a field that is not null from csv to mysql using Perl?

我正在使用Perl將csv文件插入MySQL。 我已成功將某些數據插入MySQL。 但是,csv文件中的某些字段為null,並且代碼無法繼續運行。

表達if語句以檢查$rttjitter是否不為null,否則打印該行號,然后執行的正確方法是什么?

即2個標准: $rtt不等於0且$rttjitter不為null。

my $empty =  q{};

my @nulls = ();

if ($rtt !=0 && $rttjitter ne undef)

^這些效果不太好。

您可以使用內置的定義函數來顯式檢查是否定義了變量,因此例如

if( defined( $rttjitter ) and $rttjitter ) { ...

將檢查它是否已定義並且其值不為0或為空字符串。

似乎您應該再看一遍CSV的閱讀方式( 正在使用諸如Text :: CSV之類的模塊,對嗎?),和/或如何進行數據庫插入,就像通常這樣undef值將作為NULL干凈地插入數據庫中,並且不會對代碼造成任何問題,除非您做一些奇怪的事情。

if (defined($rttjitter) && defined($rtt) && $rtt != 0)
{
    ... # $rttjitter is not null (undef) and $rtt is not null (undef) and nonzero
}
else
{
    ... # at least one column fails the test
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM