2017-01-13 13 views
0

Ich mag aus einer Datenbank Daten ändern, aber ich behalte Fehler immer und ich kann einfach nicht den Fehler finde ich gemacht ..Änderungsdaten aus der Datenbank mit PHP

Hier ist der Code:

if(isset($_POST['id'])) { 
     if(is_numeric($_POST['id'])) { 
      $change = pg_query($db, "SELECT * FROM azubi3 WHERE id = ".$_POST['id'].""); 
      echo $change; 
      if($auto == "") { 
       $auto = "false"; 
      } 
      else { $auto = "true"; } 
      $change = pg_query($db, "UPDATE azubi3 SET vorname = '".$_POST['prename']."', nachname = '".$_POST['name']."', auto = ".$auto.", auto_id = ".$_POST['auto_id'].", schuh_id = ".$_POST['schuh_id']." WHERE id = ".$_POST['id'].""); 
     } 
     else { echo "ID muss eine Zahl sein!"; } 

    } 

Und das ist der Fehler, den ich bekomme:

Warning: pg_query(): Query failed: ERROR: syntax error at or near "," LINE 1: ...achname = 'Mustermüller', auto = false, auto_id = , schuh_id...^in /srv/www/htdocs/azubi2/test3.php on line 82 
+0

erste Sache, ist der Code gegen SQL-Injektionen anfällig. Sie müssen ** Benutzereingaben überprüfen und bereinigen, bevor Sie sie in Ihrer Abfrage verwenden. siehe http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 –

+1

Dies hat so viele SQL-Injektionsoptionen, dass ich das Gefühl habe, Sie versuchen mach eine * hack-me-page * – Peon

+0

'". $ _POST ['id']. "' Ersetze das mit diesem ''". $ _POST [' id ']. "'' –

Antwort

1

Zuerst, was Ihre SQL ist Injektion zu injizieren, sollten Sie es korrigieren.

Im Interesse Ihrer Frage:

falsch ein reserviertes Schlüsselwort ist, bitte Schnur um es verwenden:

$change = pg_query($db, "UPDATE azubi3 SET vorname = '".$_POST['prename']."', nachname = '".$_POST['name']."', auto = '".$auto."', auto_id = ".$_POST['auto_id'].", schuh_id = ".$_POST['schuh_id']." WHERE id = ".$_POST['id'].""); 
+0

Bitte schlagen Sie keinen Code vor, der anfällig für SQL-Injektionen ist. –

+0

Was ist, wenn er boolesche Werte in 'auto' und nicht in eine Zeichenfolge setzen möchte? – Peon

+0

Ich denke, Sie sollten es mindestens in Ihrer Antwort erwähnen –

Verwandte Themen