2014-04-23 66 views
0

我得到了一個變量列表來遍歷數據庫。我如何檢測變量不在數據庫中?我應該使用什麼查詢?一旦檢測到變量不在數據庫中,如何打印出錯誤信息。如何檢查變量是否是數據庫並將其打印出來?

我的代碼:

$variable = $sql->{'variable'}; 

foreach my $sql (@Records){ 

**Below statement will select existed variable, what should I change to make it select not existed variable** 

$sqlMySQL = "Select LOT from table where LOT like '%$variable%'"; 

} 

**If not exist**{ 

print("Not exist") 

} 

預期結果:

雖然$variable遍歷數據庫,如果沒有$variable存在於數據庫中,然後打印出$variable或不存在。

感謝您的觀看,評論和解答。

回答

1

我會去類似於下面的。

  1. 的變量列表 - 將數組中的這些變量(又名列表)
  2. 我應該使用什麼樣的查詢 - 一個將只選擇你需要的東西,並將其存儲在穿越最好的數據集( selectall_hashref)
  3. 雖然通過數據庫的$ variable循環 - 每個$variable都需要調用DBI,所以請循環訪問數組以檢查哈希中是否存在。

實施例相同

#!/usr/bin/perl 

use strict; 
use warnings; 
use DBI; 
my $dbh = 
    DBI->connect("dbi:SQLite:dbname=test.db", "USERNAME", "PASSWORD", 
    { RaiseError => 1 }, 
) or die $DBI::errstr; 
my @vars = (25, 30, 40); 
my $hash_ref = 
    $dbh->selectall_hashref(q/SELECT LOT FROM table /, q/LOT /); 
$dbh->disconnect(); 

foreach (@vars) { 
    if (exists $hash_ref->{$_}) { 
     print $_ . "\n"; 
    } 
    else { 
     print "Does not exist\n"; 
    } 
} 

東西會拉所有LOT列值的表爲哈希keyvalue對,然後可以在foreach循環比較對您array

相關問題