Dateien löschen welche zuvor über mysql abgefragt wurden
Jan
- perl
0 xwolf0 Klaus Mock
Hallo,
wollte bestimmte Dateien löschen, welche zuvor über mysql abgefragt wurden, sprich die Dateinamen.
dachte da an (Code):
my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;
my $id= 'id=' ;
my $str = join " OR $id " => @werte;
#Datenbank öffnen
$sth = $dbh->prepare("SELECT name_pic
FROM $table1
WHERE $id$str ") ;
$sth->execute ;
while (my @picdel= $sth->fetchrow_array() ) {
unless( -d $_) {
unlink($pathofpictures.@picdel);
}
}
$sth->finish ;
geht so aber leider nicht ;(
Vielleicht einer n guten Vorschlag?
Mfg Jan
Hi,
wollte bestimmte Dateien löschen, welche zuvor über mysql abgefragt wurden, sprich die Dateinamen.
dachte da an (Code):
my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;
my $id= 'id=' ;
my $str = join " OR $id " => @werte;
#Datenbank öffnen
$sth = $dbh->prepare("SELECT name_pic
FROM $table1
WHERE $id$str ") ;
$sth->execute ;
while (my @picdel= $sth->fetchrow_array() ) {
unless( -d $_) {
unlink($pathofpictures.@picdel);
}
}
$sth->finish ;
geht so aber leider nicht ;(
Mach malö etwas Debugging!
Lass dir mal den *Array* @picdel ausgeben und schau,
was "$pathifpictures.@picdel" ausgibt :)
Ciao,
Wolfgang
Hallo,
my $pathofpictures = 'f:/ApacheServer/htdocs/dateien/' ;
my $id= 'id=' ;
my $str = join " OR $id " => @werte;
$sth = $dbh->prepare("SELECT name_pic
FROM $table1
WHERE $id$str ") ;
IMHO wäre ein 'WHERE ID IN ('.join(',',@werte).')' oder so ähnlich eleganter.
while (my @picdel= $sth->fetchrow_array() ) {
Da nur ein Wert pro Datensatz abgefragt wird würde IMHO
while (my($picdel)= $sth->fetchrow_array() ) {
besser passen, da klarer
unless( -d $_) {
was ist das? Welchen Wert hat gerade $_?
unlink($pathofpictures.@picdel);
und hier dann auch
unlink($pathofpictures.$picdel);
Grüße
Klaus