.| Autor | Beitrag |
|---|---|
|
000 04.01.2007, 16:52 LeJean |
Tag, ganz blöde Sache, an der ich schon seit Ewigkeiten rumsuche. Ich kenne den SQL-Fehler "Unknown column 'xxx' in 'field list'" sehr wohl, und weiß auch was er zu bedeuten hat. Doof ist aber, dass mir so verdammt sicher bin, in der kleinen SQL-Abfrage, die ihn hervorruft, keine Fehler zu haben:
Edit: Ach ja, die Tabellenspalte 'altnames' ist VARCHAR mit max 250 Länge, übergeben wird ein einfacher String. So langsam hab ich echt keine Ahnung mehr wo ich suchen soll, ich hab alle möglichen PHP / MySQL Seiten durchforstet, meine Syntax stimmt mit Sicherheit... Ist jemandem von euch ein solcher Fehler bekannt, oder kann sich wer vorstellen woran sowas liegt? Danke, Dieser Beitrag wurde am 04.01.2007 um 17:00 von LeJean bearbeitet. |
|
Profil || Suche |
|
001 04.01.2007, 17:00 Adrian_Broher Admin |
Vermutung: $altnames_new ist ein string? sollte er dann nicht in anführungszeichen? wie sieht die tabellenstruktur von rezepte aus? was nämlich zZ als query hinten rauskommt, wenn $altnames_new = "Foo" und ist sieht so aus:
There is nothing wrong with high standards. It's your problem that you don't meet them. Dieser Beitrag wurde am 04.01.2007 um 17:07 von Adrian_Broher bearbeitet. |
|
Profil || Suche |
|
002 04.01.2007, 17:11 LeJean |
Der Inhalt von $altnames_new ist ein String, ja. Es gibt ja die Möglichkeiten einen String mit Anführungszeichen oder Hochkommata zu begrenzen... Edit: ach so meinst du - naja, auch wenn ich Backticks verwende (`...`), hilft das nicht weiter, der Fehler bleibt. Die Tabellenstruktur von rezepte ist ich will bei einem bestehenden Rezept alternative Namen eintragen. Wenn jetzt 'altnames' == '0' ist, dann wird der neu angegebene Name so in $altnames_new gespeichert, wenn 'altnames' in besagter Tabellenzeile schon einen Eintrag hat, dann wird $altnames_new mit dem bisherigen Inhalt belegt und durch einen .-Operator der neue Name mit angehängt. Damit sind alle möglichen Fälle abgedeckt und die Variablenzuweisung funktioniert so weit auch. D.h. wenn ich von Hand etwas in die Tabelle schreibe, das auslese, nen neuen alternativen Namen eintrage und mir die Variableninhalte ansehe, dann hat $altnames_new genau den richtigen Inhalt. Genauso wenn halt in der Tabellenzeile noch nichts eingetragen war und ich einfach so nen neuen Namen einfügen lassen will. Nur kommt meine SQL-Abfrage mit irgendwas nicht klar, und ich hab keine Ahnung warum das Ding immer nach der Spalte mit dem neu eingetragenen Namen sucht. Wenn ich spaßeshalber mal den Namen 'altnames' neu eintragen lassen will, dann bekomm ich meine zuvor definierte Ausgabe "$altnames_new wurde eingetragen", wenn ich aber in die Tabelle gucke, dann steht nix drin - 'altnames' hat immernoch '0'. Dieser Beitrag wurde am 04.01.2007 um 17:16 von LeJean bearbeitet. |
|
Profil || Suche |
|
003 04.01.2007, 17:15 Adrian_Broher Admin |
Lass den querystring mal in einer temporären variable speichern und druck die dann vor mysql_query aus. --There is nothing wrong with high standards. It's your problem that you don't meet them. Dieser Beitrag wurde am 04.01.2007 um 17:30 von Adrian_Broher bearbeitet. |
|
Profil || Suche |
|
004 04.01.2007, 17:16 LeJean |
Hab ich auch schon probiert, das sah auch gut aus ;) Aber du hast Recht. Ich muss echte Anführungszeichen ("...") drumherum machen. Die andere (sehr ähnliche) Abfrage hat scheinbar funktioniert, weil ich da nur mit Zahlen gearbeitet habe. Ich dachte immer, dass ich auch mit Backticks (`...`) Strings begrenzen kann. Na toll, hätte man auch eher merken können -.- Dankeschön! -- |
|
Profil || Suche |

