簡體   English   中英

如何避免使用php在SQLite表中添加冗余數據?

[英]How to avoid adding redundant data in SQLite table using php?

我正在處理如下所示的php代碼,其中列出了$ src_dir中存在的所有mp4文件

$src_dir = ('\\\ABCD-ST-001\Audio_Test\podcast\incoming_folder'); 

$mp4_files = preg_grep('~\.(mp4)$~', scandir($src_dir));

print_r(array_values($mp4_files));  // LineA

這是從Line#A獲得的O / P

Array ( [0] => 36031P.mp4 [1] => hello.mp4 )

現在,我在php代碼中使用了以下腳本,以便將這些mp4文件插入Podcast_Export表中。

    foreach ($mp4_files as $value) {
        $db->exec(SELECT COUNT(*) FROM Podcast_Export WHERE House# = '".$value."' AND status = 'GO');
        $db->exec("INSERT INTO Podcast_Export ('House_number', 'Status') VALUES ('".$value."', 'Go')");    // Line B
    }

上面的腳本在Podcast_Export表內添加以下數據:

36031.mp4 Go
hello.mp4 Go

問題陳述:

我現在面臨的問題是刷新頁面時,再次運行LineB上的腳本,並在Podcast_Export表內再次添加$ src_dir中存在的mp4文件,如下所示:

36031.mp4 Go
hello.mp4 Go
36031.mp4 Go
hello.mp4 Go

它應該以一種方式工作,一旦新文件出現在$ src_dir中,然后應在Podcast_Export表中添加。 讓我們假設新文件是hxz210.mp4,那么Podcast_Export表中的內容應為:

36031.mp4  Go
hello.mp4  Go
hxz210.mp4 Go

您的選擇很好,但是您需要將結果存儲到類似以下的變量中:

$count = $db->querySingle("SELECT COUNT(*) as count FROM Podcast_Export WHERE House_number = '".$value."'"); 
if($count <= 0){ 
    $db->exec("INSERT INTO Podcast_Export (House_number,Status) 
               VALUES ('".$value."', 'Go')");
}

使用querySingle獲取SQLite中的行數。

請注意,在這里我已將House#更改為House_number ,並刪除了AND status = 'GO'子句,因為它們所有人都具有GO狀態。

暫無
暫無

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

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