[英]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.