2017-09-23 1 views
0

Ich habe einen Code für mein Login und Registrierungssystem geschrieben. In meinem Registrierungssystem habe ich diesen Code enthalten:Funktionieren UPDATE-Anweisungen mit WHERE?

<?php 
    $sql3="UPDATE users SET 
      firstname='$firstname', lastname='$lastname', 
      password='$password',bio='$bio', 
      dob='$dob',gender='$gender' 
?> 

Aber natürlich diese Updates nur alle Zeilen in der Tabelle users. Aber wenn ich hinzufügen:

<?php WHERE username=$username ?> 

ich einen Fehler: Sie haben einen Fehler in der SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Server-Version für die richtige Syntax in der Nähe von '' in Zeile 1 entspricht.

Lassen Sie mich klar sein, das ist keine Fehlerfrage, ich weiß, was das Problem ist. Ich möchte nur wissen, wie ich meinen Code beheben kann, damit er nicht die gesamte Tabelle aktualisiert, sondern nur eine Zeile. Vielen Dank im Voraus.

+0

einfach der 'am Ende der ersten Abfrage WHERE' Anweisung setzen, fügen –

+1

Bitte einen Code-Block, den Sinn als Schnitt macht. Dies macht derzeit keinen Sinn, das ist – RiggsFolly

+1

Versuchen Sie, Anführungszeichen um den Wert als Textwert hinzuzufügen, wie 'WHERE username = '$ username'' – RiggsFolly

Antwort

-1

Ja, sie funktionieren. Die WHERE-Klausel hilft Ihnen dabei, bestimmte Zeilen zu aktualisieren. Andernfalls werden alle Zeilen der Tabelle aktualisiert.

UPDATE TABLE_NAME SET COLUMN_NAME=<VALUE> WHERE COLUMN_NAME=<VALUE>; 

So setzen Bezeichnerspalte wie username in WHERE Klausel vermeiden, alle Zeilen zu aktualisieren.

So etwas vorbereitete Anweisung mit

UPDATE users 
SET firstname=?, lastname=?,password=?,bio=?, dob=?, gender=? 
where username=? 
+0

Nicht wirklich eine Antwort auf die Frage – RiggsFolly

+0

@RiggsFolly Ich hoffe, jetzt ist es? : D – unnamed

+0

Nein, es enthält immer noch einen offensichtlichen Fehler – RiggsFolly