Prüfen ob ein Dateinamen global in der MySQL-DB vorhanden ist
guma
- php
Hallo alle!
Ich habe gestern eine Löschfunktion mit PHP erstellt, die ausgewählte dateien auf dem Server löscht. Nun, damit der User nicht versehentlich Dateien löscht, die in gebrauch sind (auf CMS Seiten verlinkt) will ich die komplette Datenbank (name: dbcms) in allen feldern prüfen ob die datei drin ist. Wenn ja, dann gebe ich das aus, damit der user informiert ist. falls nicht wird der löschvorgang durchgeführt.
Umsetzung:
mit der suche in einer tabelle einer datenbank kenne ich mich aus. Wie aber kann ich die komplette DB durchsuchen, ohne diese explizit angeben zu müssen. Mir ist das wichtig, da mein system je nach einsatz immer wieder unterschiedliche tabellen hat und ich deshalb global abfragen will.
mir ist klar, dass hier längere laufzeiten entstehen, da alles durchsucht wird. der server hat also etwas mehr arbeit.
was denkt ihr? gibts da was?
guma
Hi,
was denkt ihr? gibts da was?
ja da gibts einiges, du solltest dir mal im speziellen:
http://www.php.net/manual/de/function.mysql-list-dbs.php
http://www.php.net/manual/de/function.mysql-list-tables.php
und allgemein
http://www.php.net/manual/de/ref.mysql.php
anschaun. da findest du bestimmt etwas.
MfG
hallo daniel,
hab ich das richtig verstanden?
ich prüfe nach tables in der db und lasse mir alle ausgeben, danach kann ich alle ausgegeben tabellen einfach durchsuchen lassen.
ich versuch das mal so. danke für den tipp!
guma
Hi,
hab ich das richtig verstanden?
ich prüfe nach tables in der db und lasse mir alle ausgeben, danach kann ich alle ausgegeben tabellen einfach durchsuchen lassen.
nunja, ich hät mir halt eine tabelle anch der anderen geholt und wär sie
durchgegangen. bis es keine tabellen mehr giebt in der DB. wobei dies
bei meinen konstrukten (min 50 tabellen / DB) mit mehr als genug daten
ziemlich zeitaufwendig werden würde und den server ne zeitlang
beschäftigen.
ich versuch das mal so. danke für den tipp!
bitte gern geschehen.
MfG
Hi,
ja da gibts einiges, du solltest dir mal im speziellen:
wenn man ein allgemeines DB-Tool wie PhpMyAdmin schreibt, ist das sinnvoll. Bei Update-Mechanismen o.ä., die mit einem unbekannten Stand der DB zu rechnen haben, auch. In allen anderen Fällen *muss* die Datenbankstruktur als bekannt vorausgesetzt werden. Tut man es nicht, ist das ein ziemlich sicheres Zeichen für einen *sehr* grob fahrlässigen Konzeptfehler.
Cheatah
Hi,
wenn man ein allgemeines DB-Tool wie PhpMyAdmin schreibt, ist das sinnvoll.
was meinst du wo ich als erstes hin bin? ins php-verzeichniss code guggen.
Bei Update-Mechanismen o.ä., die mit einem unbekannten Stand der DB zu rechnen haben, auch.
wenn du den aufbau einer DB nicht kennst wie willst du sie dann
aktuallisieren? sprich UPDATEn
In allen anderen Fällen *muss* die Datenbankstruktur als bekannt vorausgesetzt werden.
na ich werd diese funktionen wohl nie verwenden da ich phpMyAdmin benutz
und damit zufrieden bin. Optisch sicherlich nicht der hit frameset usw.
aber was solls, es funktioniert. Vll. irgendwann bau ich ein DB-Tool
aber nur wenn ich nix anderes zu tun habe.
MfG
Hi,
wenn man ein allgemeines DB-Tool wie PhpMyAdmin schreibt, ist das sinnvoll.
was meinst du wo ich als erstes hin bin? ins php-verzeichniss code guggen.
ich verstehe den Zusammenhang nicht.
Bei Update-Mechanismen o.ä., die mit einem unbekannten Stand der DB zu rechnen haben, auch.
wenn du den aufbau einer DB nicht kennst wie willst du sie dann
aktuallisieren? sprich UPDATEn
Lies bitte noch einmal, was ich geschrieben habe.
Cheatah
Ahoi Cheatah,
was meinst du wo ich als erstes hin bin? ins php-verzeichniss code guggen.
ich verstehe den Zusammenhang nicht.
das erste was ich nach dem OP getan habe war ins rootverzeichniss zu
gehen, dort in das verzeichniss von php-MyAdmin und dort den code
angeschaut wie sie dort die tabellen holen. jetzt klar?
Bei Update-Mechanismen o.ä., die mit einem unbekannten Stand der DB zu rechnen haben, auch.
wenn du den aufbau einer DB nicht kennst wie willst du sie dann
aktuallisieren? sprich UPDATEn
Lies bitte noch einmal, was ich geschrieben habe.
hab ich, du sagst es ist auch bei Update-Mechanismen sinnvoll sich die
tabellen geben zu lassen, da bin ich aber eben anderer meinung.
MfG
so hallo cheatah
du schreibst dass es ein *sehr* grob fahrlässiger Konzeptfehler ist eine db komplett durchsuchen zu lassen.
in diesem fall soll arbeit beim zusammenstellen der tabellen gespart werden. da es eine funktion gibt die mir die tabellen in einer DB ausgibt nimmt es mir arbeit ab. Dann kann ich die verwenden. jetzt suche in in der tabelle bei feldnamen "images" nach dem namen und wenn er vorhanden ist wird das ausgegeben.
was ist an dem konzept grob fahrlässig?
guma
Hi,
in diesem fall soll arbeit beim zusammenstellen der tabellen gespart werden.
bitte bei was soll Arbeit gespart werden? Was ist das "Zusammenstellen der Tabellen", was versprichst Du Dir davon, warum ist sowas nötig?
jetzt suche in in der tabelle bei feldnamen "images" nach dem namen und wenn er vorhanden ist wird das ausgegeben.
was ist an dem konzept grob fahrlässig?
Du schießt willkürlich in die Gegend. Im realen Leben nennt man sowas "Amoklauf".
Cheatah
Hi,
Wie aber kann ich die komplette DB durchsuchen, ohne diese explizit angeben zu müssen.
das ist meilenweit vom Sinn einer Datenbank entfernt. Somit wurde keine Möglichkeit vorgesehen.
Mir ist das wichtig, da mein system je nach einsatz immer wieder unterschiedliche tabellen hat
Hier liegt Dein Konzeptfehler.
Cheatah