2017-07-29 6 views
-3

Ich muss einen Datenbankeintrag von PHP aktualisieren.MySQL UPDATE funktioniert in phpMyAdmin aber nicht in PHP

Hier ist mein PHP-Code:

if(isset($_FILES["fileEdit"])){ 
    if($_FILES["fileEdit"]["error"] == 0){ 

     $id = $_POST["id"]; 
     $productName = $_POST["name"]; 
     $productDesc = $_POST["desc"]; 
     $productPrice = $_POST["price"]; 
     $productPath = "images/" . $_FILES["fileEdit"]["name"]; 

     move_uploaded_file($_FILES["fileEdit"]["tmp_name"], $path . $_FILES["fileEdit"]["name"]); 

     $sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice' img_src='$productPath' WHERE id='$id'"; 

     $result = $dbCon->query($sql); 

     echo "edit--> " . $_FILES["fileEdit"]["name"] . " -> no errors, " . $productName . " desc: " . $productDesc . " price: " . $productPrice . "id: ".$id; 
    }else{ 
     echo $_POST["name"]." -> error"; 
    } 
} 

mein JavaScript hier:

$("#submitEditBtn").click(function(){ 

     var file_data = $('#editImg').prop('files')[0]; 
     var form_data = new FormData(); 

     if(file_data) 
      form_data.append('fileEdit', file_data); 
     else 
      form_data.append('noImgChanges', "true"); 

     form_data.append('name', $("#editP_name").val()); 
     form_data.append('desc', $("#editP_desc").val()); 
     form_data.append('price', $("#editP_price").val()); 
     form_data.append('id', $("#productEditing").attr("name")); 

     $.ajax({ 
      url: 'imgParser.php', 
      dataType: 'text', 
      cache: false, 
      contentType: false, 
      processData: false, 
      data: form_data, 
      type: 'POST', 
      success: function (response) { 
       console.log(response); 
      }, 
      error: function (response) { 
       console.log("ERROR OCCURED"); 
      } 
     }); 

    }); 

Also, was passiert ist, dass ich in den Informationen zu füllen (Eingänge, Bild, etc.), dann drücken Sie die Taste, Das sendet eine Anfrage mit Artikel-ID als Daten. Die PHP soll den Datensatz mit neuen Informationen aktualisieren, tut es aber nicht, aber wenn ich genau denselben Befehl in der SQL-Konsole eingabe und Variablen durch einige Daten ersetze, wird sie erfolgreich aktualisiert. Auch in der Chrome-Konsole gibt es alle Daten aus (die zurückgemeldet werden).

Irgendwelche Ideen/Anregungen sind erwünscht

EDIT:

ich den Fehler gedruckt (falls es überhaupt) in der Konsole, ich habe

Sie haben einen Fehler in Ihrer SQL-Syntax ; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden 'img_src =' images/80sKIDTee.png 'WHERE id = '1'' in Zeile 1

+1

Haben Sie 'echo $ sql versucht,' die richtige Abfrage, um sicherzustellen, Sie haben? –

+0

Haben Sie einen Fehler erhalten? – Amir

+0

Ja anscheinend gibt es –

Antwort

0

ich betreibe das Gefühl, dass Sie von den Problemen sind gerettet werden, wenn es nicht da Sie arbeiten‘ Wenn Sie die Eingaben nicht bereinigen und jemand anderes die Datenbank bereinigen wird Punkt, aber

Aktualisieren Sie Ihren SQL-Code zu diesem:

$sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice', img_src='$productPath' WHERE id='$id'"; 

Sie das Komma nach price='$productPrice' fehlt.

+0

Wow kann nicht glauben, dass ich das Komma verpasst habe, was meinst du mit "nicht die Eingaben bereinigen"? –

+2

@VadimTatarnikov Sie geben direkt die '$ _POST'-Daten in die Abfrage ein. Sie müssen in SQL Injection Prevention schauen (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – DomLip

+0

Prost, ich werde es, obwohl diese Schnittstelle untersuchen ist rein für den Administratorgebrauch, also ist SQL-Injektionen kein Problem. –

3

die fehlt aus Ihrer SQL hinzufügen Erklärung:

$sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice', img_src='$productPath' WHERE id='$id'"; 
0

den Tabellenname in einfache Zitate Stellen oder versuchen, die sQL-Abfrage error.log und in phpMyAdmin

1

Sie fehlende , in der Nähe von img_src = '$ productPath' in Abfrage

$sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice',img_src='$productPath' WHERE id='$id'"; 
Verwandte Themen