Sponsor-Board.de

Normale Version: Unknown column 'id' in 'where clause'
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Com, in der Kürze der Zeit habe ich ein kleines Problem und seh den Wald vor lauter Bäume nicht Biggrin

Mein Problem:

Zitat:
Navigationspunkt konnte nicht erfolgreich bearbeitet werden! Unknown column 'id' in 'where clause'


Bild davon hier:
http://puu.sh/4zfzI.png(!https)

So, nun hier der Codeschnipsel, der dazu gehört:

PHP-Code:
$sql "UPDATE `content` SET `name` =  $header, `url` = $content WHERE id = " $id;
                        if(!
mysql_query($sql)){
                            
$error mysql_error();
                            echo 
'<div data-alert class="alert-box alert">
                                Navigationspunkt konnte nicht erfolgreich bearbeitet werden! '
.$error.'
                                <a href="#" class="close">&times;</a>
                                </div>'
;
                        } else {
                        echo 
'<div data-alert class="alert-box success">
                                Navigationspunkt erfolgreich bearbeitet!
                                <a href="#" class="close">&times;</a>
                                </div>'
;
                        } 


Hier die Datenbank-Struktur:
http://puu.sh/4zfDq.png(!https)

Nun finde ich allerdings den Fehler nicht - Die Tabelle existiert ja...

Vielen Dank erstmal für eure Hilfe. Bin jetzt erstmal am Handy und kann dementsprechend andere Codeschnipsel nicht liefern.
Schönen Abend euch,
Tim

PHP-Code:
$sql 'UPDATE `content` SET `name` =  '.mysql_real_escape_string($header).', `url` = '.mysql_real_escape_string($content).' WHERE `id` = "'.mysql_real_escape_string($id).'";'


Anführungszeichen werden von PHP langsamer verarbeitet als einfache Anführungszeichen Wink.
Ich hoffe mal du hast in deinen Querys überall mysql_real_escape_string(); drin. Das wird normalerweise immer direkt im String eingefügt Wink.
Am besten schreibst du dir eine Funktion oder Methode, der du einfach die Werte übergibst und den Query String automatisch zusammensetzt und auch gleich den Escape übernimmmt Wink.

Prüf auch mal noch, ob die richtige Datenbank selektiert wurde.

MfG

Nur eine kleine Info:
mysql_real_escape_string würde ich auf keinen Fall weiter verwenden.
Diese Funktion wir nämlich ab PHP 5.5 nicht mehr unterstützt werden.

Niklas schrieb:
Nur eine kleine Info:
mysql_real_escape_string würde ich auf keinen Fall weiter verwenden.
Diese Funktion wir nämlich ab PHP 5.5 nicht mehr unterstützt werden.


Das betrifft aber ALLE mysql_*-Funktionen, nicht nur mysql_real_escape_string.

Niklas schrieb:
Nur eine kleine Info:
mysql_real_escape_string würde ich auf keinen Fall weiter verwenden.
Diese Funktion wir nämlich ab PHP 5.5 nicht mehr unterstützt werden.


Ich verwende sowieso PDO, nur glaube ich kaum, das er jetzt einfach auf PDO umsteigen möchte.
Von daher wird es ihm nicht weiterhelfen Wink.

Edit:
Und so wie ich das hier sehe, wurde auch keine Klasse, bzw. Funktion verwendet, weshalb sich ein Umstieg auf PDO oder Mysqli recht aufwendig gestalten dürfte Smile.

Mr, du kennst das restliche script nicht - kennst also die Sicherheitsvorkehrungen nicht.
Werde das morgen dann mal ausprobieren.
Nein, aber ich weiß dass die escape Funktion bzw. die vorgeschaltete Funktion direkt in den String gehört.
Wenn man das irgendwie außerhalb macht, wird es gerne mal, vorallem bei größeren Projekten, vergessen bzw. ist vom Ablauf her ausgegrenzt.
Ich wollte nur den Tipp geben.
So, Problem gefunden...

Zitat:
seh den Wald vor lauter Bäume nicht

stimmt genau! Man sollte auch navbar, nicht content als Tabelle auswählen...
Vielen Dank an alle, die mir geholfen haben / es wollten...

Referenz-URLs