2017-02-13 9 views
0

ich einen sehr einfachen Code haben Daten in die Datenbank einfügen, überprüft auch, ob bereits gleichen Daten in TabelleVariable nicht auf Tabelle eingefügt

[HTML]

<html> 
<head> 
    <title>nickname</title> 
</head> 
<body> 
    <p>input nickname</p> 
    <form action="foo.php" method="post"> 
     <input type="text" name="nickname" /> 
     <input type="submit"> 
    </form> 
</body> 
</html> 

[PHP] hat

Ich lerne immer noch, wie man MySQL benutzt, was mache ich falsch? insbesondere diese Linie

$sql = "INSERT INTO nickname(nickname) VALUES(".$nickname.")"; 
$conn->query($sql); 

die Daten in die Variable nicht auf die Tabelle eingefügt wird, passiert nichts. aber wenn ich $nickname zu Klartext ersetzen, werden die Daten eingefügt.

bearbeiten
Warum ist das ein Duplikat? Die Frage ist nicht einmal über

+0

Ihr Skript „wie SQL-Injection verhindern“ ist in Gefahr [SQL-Injection-Angriff] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Werfen Sie einen Blick auf, was mit [Little Bobby Tables] passiert ist (http://bobby-tables.com/) Auch [wenn Sie sind Eingaben entgehen, es ist nicht sicher!] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) Verwenden Sie [vorbereitete parametrisierte Anweisungen] (http://php.net/manual/de/mysqli.quickstart.prepared-statements.php) – RiggsFolly

+0

@RiggsFolly Danke für die Antwort, ja ich muss vorbereitete Aussagen verwenden, aber löst das das Problem? Ich schrieb ein einfaches Skript, nur um zu testen ... –

+0

@ha_ryu ganz im Gegenteil, eine vorbereitete Aussage ist die sehr und die einzige Lösung für dieses Problem. Was bedeutet, dass eine doppelte Verbindung tatsächlich falsch ist. –

Antwort

1

Geben Sie einfache Anführungszeichen für die Variable

$sql = "INSERT INTO nickname(nickname) VALUES('".$nickname."')"; 
$conn->query($sql); 
+0

danke! Ich habe es falsch gemacht! VALUES ("'. $ Spitzname.'"), Aber gibt es kein Problem mit meinem Code, wenn ich zweimal abfrage? oder mehr? –

+0

Yes..Welcome.Good luck :) – affaz

+0

Diese Antwort ist falsch –

Verwandte Themen