为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕尼黑的夜晚无繁华 2021-08-28 16:23:50
我正在处理如下所示的 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 Gohello.mp4 Go问题陈述:我现在面临的问题是当我刷新页面时,再次运行 LineB 处的脚本,并将$src_dir 中存在的 mp4 文件再次添加到Podcast_Export表中,如下所示:36031.mp4 Gohello.mp4 Go36031.mp4 Gohello.mp4 Go它应该以一种方式工作,一旦新文件出现在$src_dir 中,那么它应该添加到Podcast_Export表中。让我们假设新文件是hxz210.mp4那么Podcast_Export表中的内容应该是:36031.mp4  Gohello.mp4  Gohxz210.mp4 Go
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您的选择很好,但您需要将结果存储到一个变量中,例如:


$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#to House_numberhere 和removeAND status = 'GO'条款更改为所有条款,因为它们都具有GO状态。


查看完整回答
反对 回复 2021-08-28
  • 1 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信