0

現在、このphpを複数回実行すると、現在データベースにある画像データが複製されるという問題が発生しています。たとえば、アップロード ファイルに 5 つの画像をアップロードし、スクリプトをクリックすると、すべて問題ありませんでした。別の画像を追加してスクリプトを再度クリックすると、データベースに 6 枚の画像があったのが 11 枚になりました。この問題を解決するには、コードをどのように変更すればよいか考えていました。

include('mysql.php');

if ($handle = opendir('images')) {

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
        if($file!='.' && $file!='..') {
            $images[] = "('".$file."')";
        }
    }

    closedir($handle);
}

/* insert new record into the table images with the filename */
$query = "INSERT INTO images (filename) VALUES ".implode(',', $images)." ";
if (!mysql_query($query)) {
    print mysql_error();
}
else {
    print "finished installing your images!";
}
4

1 に答える 1

4

「ファイル名」列を一意のキーにして、INSERT IGNORE.

Insert ignore の詳細: http://dev.mysql.com/doc/refman/5.5/en/insert.html

于 2013-08-23T03:04:25.260 に答える