Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Datenbank-Query + Spaltennamen mit Sonderzeichen





Frage

Hallo, ich habe folgendes Problem: Ich lese bei einer Homepage im Adminbereich eine Tabelle aus und lasse mir die ca. 40 Felder (die einzelnen seitennamen der Homepage + deren aufrufe) anzeigen. Nun gebe ich dem Admin die Möglichkeit , diese aufrufe zu ändern, zurückzusetzen (ob sinnvoll sei dahin gestellt, es wird s ogewünscht). Damit jetzt nicht jedes einzelne Feld einen eigenen Button erhält, schicke ich das ganze Formular einmal ab, und schreibe alle Datensätzte wieder in die DB zurück, egal ob geändert oder nicht. Nun bekomme ich beim Speichern immer eine Fehlermeldung von mySql, und zwar nimmt der die Seite nicht richtig als String an. Also das SQL-Statement sieht so aus: [b]UPDATE seitenzaehler SET anzahl_klicks=5 WHERE url=´vereinschronik.php [/b] die PHP-Anweisung ist aber richtig angegeben: [b]mysql_query(´UPDATE ´ .$tabelle_seitenzaehler.´ SET anzahl_klicks=´. $klicks. ´ WHERE url="´ .$seite.´"´) or die(mysql_error());[/b] Das Problem ist, dass er die Angabe als Typ Text (mit Hochkommas) in der Spalte "url" nicht interpretiert. D.h. es steht eben [b]... WHERE url=´vereinschronik.php[/b] anstatt [b]... WHERE url=´vereinschronik.php´[/b] - er ignoriert das letzte Hochkomma. Liegt das daran, dass der Feldname einen Punkt enthält? Kann ich diesen Fehler irgendwie umgehen? Vielen Dank schonmal im Vorraus. MfG Mario

Antwort 1 von disco

moin

bin mir jetzt nich ganz sicher. aber ich glaube, dass spaltennamen keine punkte enthalten dürfen, da der "." in der sql-syntax ja eine eigene bedeutung hat.
benenn die spalte am besten um. falls du das gleiche script für mehrere seiten benutzt kannst du ja einfach einen parser einbauen, der dann bspw. den "." durch ein "_" ersetzt oder die endung ".php" komplett abschneidet.

g,
disco

Antwort 2 von Thomasoop_

ich mach es immer so ...

mysql_query("UPDATE ´$tabelle_seitenzaehler´ SET anzahl_klicks=´$klicks´ WHERE url=´$seite´") or die(mysql_error()); 


also aussen "
innerhlab ´

variablen werden innerhalb von " bereichen ausgewertet
bei ´ nicht (imho)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: