Hi.
Ich möchte eine Datei speichern, deren Dateiname vorher zufällig generiert wird. Dafür soll allerdings zuerst überprüft werden, ob eine Datei mit dem generiertem Namen nicht schon existiert.
Für diese Überprüfung ($condition) gibt es nun zwei Möglichkeiten. Einerseits kann ich per file_exists() überprüfen, ob es so eine Datei schon gibt.
Andererseits speichere ich in der MySQL-DB sowieso schon die Dateinamen in einer Tabelle. Somit könnte ich hier auch überprüfen.
Meine Überlegung ist also nur, was schneller geht. Eine Datenbankabfrage, von der man immer sagt sie sei ein "Geschwindigkeits-Engpass", oder ein Zugriff aufs Dateisystem?
Ich hoffe ich habe mich verständlich ausgedrückt, ansonsten einfach fragen
LG
groe
Der Sourcecode ist natürlich n Beispiel, die Dateinamengenerierung läuft sonst anders...
Ich möchte eine Datei speichern, deren Dateiname vorher zufällig generiert wird. Dafür soll allerdings zuerst überprüft werden, ob eine Datei mit dem generiertem Namen nicht schon existiert.
PHP:
do {
$name = rand(100,999) . ".gif";
// $condition = ?;
} while($condition);
PHP:
$condition = file_exists($name)
PHP:
$condition = (mysql_query("SELECT COUNT(id) FROM dateien WHERE name = '".$name."'") > 0);
Ich hoffe ich habe mich verständlich ausgedrückt, ansonsten einfach fragen
LG
groe
Der Sourcecode ist natürlich n Beispiel, die Dateinamengenerierung läuft sonst anders...
Zuletzt bearbeitet:
wir reden hier von zeiten im millisekunden bereich... ob nun das überprüfen 8ms oder 10ms dauert ist doch wurscht. da brauch man weder ne extra datei anlegen, noch ne extra tabelle noch sonste was... je nach anwendung würde ich file_exists oder die db lösung nehmen. wenn ich nen große anwendung baue die eventuelle mal später auf verteilten systemen arbeiten soll würde ich die datenbank lösung nehmen, ansonsten würde ich zu file_exists greifen. bei der datenbank lösung sollte aber die tabelle entsprechend optimiert sein... bei einer gewissen größe sollte man den dateiname dann als index setzen. (was zu dem selbem ergebniss wie ne memory tabelle führen würde bloss bei weiten einfacher zu verwalten, handhaben und sonstiges ist)