2016-12-02 4 views
-1

Dieser Code wird ID und Bereich von einem anderen PHP-Code erhalten und ich bin mir sicher, dass sie sie richtig erhalten. Dieser Code dient dazu, den Bereich zu aktualisieren, in dem ID der ID entspricht, die der Benutzer eingegeben hat. Ich lasse den Code laufen, ich erhielt SQL-Syntaxfehler von dieser Aussage.SQL Syntax Fehler in UPDATE

$sql = "UPDATE complain SET area = ".$area."WHERE num = ".$id.""; 

Wer hat eine Idee, was los ist?

<?php 

$area = $_GET['area']; 
$id = $_GET['id']; 

echo $area; 
echo $id; 

//$Area = $_POST['variable']; 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "sfa"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "UPDATE complain SET area = ".$area."WHERE num = ".$id.""; 



if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 

$conn->close(); 

?> 
+1

Ich vermute, $ Bereich ist eine Zeichenfolge, keine ganze Zahl. Dann sollte es in einzelne Quotes eingewickelt werden. Ihr echtes Problem ist, dass vor dem Schlüsselwort 'WHERE' kein Platz ist. Machen Sie es '... SET Bereich = '". $ Bereich. "' WO ...' – Qirel

+3

Sie sollten auch vorbereitete Anweisungen verwenden, Sie sind anfällig für SQL-Injection-Angriffe. –

Antwort

0

Try to Use diese Abfrage. Es funktioniert gut und aktualisiert die Datensätze -

"UPDATE beschweren SET Bereich = '. $ Bereich." WHERE num = '. $ Id'“

1

Bevor Where-Klausel etwas Platz hinzufügen, Ihre Abfrage zu machen wie

UPDATE complain SET area = ".$area." WHERE num = ".$id." 
1

Es gibt einen fehlenden Raum zwischen ".$area."WHERE

das Ergebnis ist dann

UPDATE complain SET area = 2WHERE num = 0815 
0

folgende Abfrage sollte funktionieren:

$sql = "UPDATE complain"."SET area = $area". 
     "WHERE num = $id"; 

Hoffe, es hilft!