/SQL Delete Statement ok, aber nichts passiert
aitee
- php
Hallo all,
der Fehler ist euch sicherlich bekannt ... bin der Meinung schon mal so etwas gelesen zu haben, hatte aber ausgerechnet darauf keinen Favoriten :/ und kann nu nichts mehr finden ...
Ich habe bei mir innerhalb einer Foreach Schleife ein SQL Delete untergebracht ... das merkwürdige ist:
Ich bekomme keine Fehlermeldung, alle Variablen, $_POST, etc. sind korrekt (wird alles ausgegeben). Das Statement ist korrekt (visuell und in mySQL geprüft) ... nur es wird einfach nichts gelöscht ...
hat dafür jemand eine erklärung?
Hier der Code:
if (isset($_REQUEST['delete']))
{
foreach ($_REQUEST['delete'] as $num=>$val)
{
$name = $_POST['name'][$val];
$err = "Das Löschen der Datensätze war nicht erfolgreich: ";
$sql = "DELETE FROM tbl_gallery_dirs ";
$sql .= "WHERE dir_name = '$name'";
if (mysql_query($sql, $connect) or die($err.mysql_error()))
{
echo "Löschen war erfolgreich!"; // nur zur visuellen Kontr.
}
else
{
echo "Daten konnten nicht gelöscht werden"; // wie if
}
yo,
hast du den schon mal geschaut, wie deine variable $name aussieht, bzw. ob sie sonderzeichen enthält ?
Ilja
yo,
hast du den schon mal geschaut, wie deine variable $name aussieht, bzw. ob sie sonderzeichen enthält ?
Ilja
Ja klar ... ich lasse mir jede benutze Variable und jedes einzelne Statement ausgeben ... ist alles völlig korrekt ... ich hab schon tausend Leute gefragt in Foren überall ... keiner kann mir das erklären, alle meinen ist alles i.O. ... ich versteh die Welt nicht mehr :/
yo,
Ja klar ... ich lasse mir jede benutze Variable und jedes einzelne Statement ausgeben ... ist alles völlig korrekt ... ich hab schon tausend Leute gefragt in Foren überall ... keiner kann mir das erklären, alle meinen ist alles i.O. ... ich versteh die Welt nicht mehr :/
hmmm, immer schwer aus der entfernung, wenn der fehler nicht gleich augenscheinlich ist. aber eine spontane idee wäre noch, dass du dich eventuell bei der falschen datenbank anmeldest oder die falsche überprüfst, zum beispiel die testdatenbank ? eine andere idee wäre noch, den sql statement nicht über variablen aufzubauen, sondern aus einem string ganz ohne variablen zusammenzusetzen. also den entsprechen datensatz in der datenbank gleich nach der verbindung mit der datenbank zu löschen, ganz ohne angaben von variablen. aber das hast du vielleicht schon alles durch.
Ilja
hmmm, immer schwer aus der entfernung, wenn der fehler nicht gleich augenscheinlich ist. aber eine spontane idee wäre noch, dass du dich eventuell bei der falschen datenbank anmeldest oder die falsche überprüfst, zum beispiel die testdatenbank ? eine andere idee wäre noch, den sql statement nicht über variablen aufzubauen, sondern aus einem string ganz ohne variablen zusammenzusetzen. also den entsprechen datensatz in der datenbank gleich nach der verbindung mit der datenbank zu löschen, ganz ohne angaben von variablen. aber das hast du vielleicht schon alles durch.
Nee ... ich komm nicht ganz mit, was Du meinst?
Ich lösche doch direkt in der DB?
wenn ich $sql = <statement> schreibe
und dann mysql_query ($sql, $db) ausführe ... ??
yo,
Ich lösche doch direkt in der DB?
wenn ich $sql = <statement> schreibe
und dann mysql_query ($sql, $db) ausführe ... ??
nun, mir ist es schon mal passiert, dass ich an der testumgebung etwas gelöscht habe und immer in der online datenbank nachgeschaut habe, ob es draussen ist. hat natürlich nicht geklappt, bis ich dahinter kam, dass ich auf zwei verschiedenen datenbanken hantiert habe, in der ienen gelöscht und in der anderen nachgeschaut. vielleicht liegt der fall bei dir ähnlich....
Ilja
nun, mir ist es schon mal passiert, dass ich an der testumgebung etwas gelöscht habe und immer in der online datenbank nachgeschaut habe, ob es draussen ist. hat natürlich nicht geklappt, bis ich dahinter kam, dass ich auf zwei verschiedenen datenbanken hantiert habe, in der ienen gelöscht und in der anderen nachgeschaut. vielleicht liegt der fall bei dir ähnlich....
Leider nicht, ich arbeite aus bequemlichkeit (wie importiere und exportiere ich mysql dbs???) immer nur live ... :/