2016-04-30 14 views
0

Ich versuche, meine Kontoinformationen aber immer der gleiche Fehler die ganze ZeitPHP Update-Abfrage Fehler

public function update_user() { 
$obj_db = $this->obj_db(); 
$query_update = "update `users` set " 
      . "first_name='$_POST[first_name]'," 
      . "middle_name='$_POST[middle_name]'," 
      . "last_name='$_POST[last_name]'," 
      . "email='$_POST[email]'," 
      . "gender='$_POST[gender]'," 
      . "contact_number='$_POST[contact_number]'" 
      . "where `userID` = '$this->userID'"; 


    $r4 = $obj_db->query($query_update); 

    if ($obj_db->affected_rows == 0) { 
     throw new Exception(" * Update user information error <br> Nothing Update"); 
    } 
} 

form will be like this

Am getting this error

+1

zeigen Sie uns auch den '

...
' Code. – Webeng

+0

sir ich hatte den Beitrag bearbeitet –

+0

bitte überprüfen Sie es –

Antwort

0

EDIT

zu aktualisieren Wenn scheint, dass $this->userID ist leer (per du bist echo 'ing von $query_update aus den Kommentaren). Da meine Antwort immer noch so aussieht, wie Ihre Abfrage fehlgeschlagen wäre, selbst mit$this->userID enthält einen Wert, ich habe beschlossen, es hier mit dieser Bearbeitung an Ort und Stelle zu lassen.

ORIGINAL

Wenn Sie auf error_reporting hatten, werden Sie einen „Hinweis: Die Verwendung von undefinierter Konstante“ werden empfangen, oder etwas in diesem Sinne als $_POST Array-Schlüssel sein müssen in Anführungszeichen, etwa so:

$_POST['contact_number'] 

Statt:

$_POST[contact_number] 

Ihr $query_update Variable wäre dann:

$query_update = "update `users` set " 
        . "first_name='$_POST['first_name']'," 
        . "middle_name='$_POST['middle_name']'," 
        . "last_name='$_POST['last_name']'," 
        . "email='$_POST['email']'," 
        . "gender='$_POST['gender']'," 
        . "contact_number='$_POST['contact_number']'" 
        . "where `userID` = '$this->userID'"; 

Weil Ihr Array-Schlüssel in Anführungszeichen nicht umgebrochen wurden sie (von dem PHP-Parser) angenommen wurden Konstanten zu sein. Da es sich nicht um Konstanten handelt, die in Ihrer Anwendung definiert sind, handelt es sich nicht um gültige Array-Schlüssel. Dies würde jedoch nur einen Hinweis werfen, weshalb Ihr Skript weiterhin ausgeführt wurde. Sie können mehr über PHP constants here lesen

+0

Funktioniert nicht $ query_update = "update' users' set " . "first_name = '". $ _ POST [' first_name ']. "'," . "middle_name = '". $ _ POST [' mittlerer_name ']. "'," . "last_name = '". $ _ POST [' letzter_name ']. "'," . "email = '". $ _ POST [' email ']. "'," . "gender = '". $ _ POST [' Geschlecht ']. "'," . "Kontaktnummer = '".$ _POST ['contact_number']. "'" . "wo' userID' = '$ this-> userID' "; –

+0

Fügen Sie dies Ihrem Skript hinzu und führen Sie es erneut aus: 'echo $ query_update;' Erhalten Sie erwartete Werte für Ihre Abfrage? – Marcus

+0

erhalten Sie diese Ausgabe Update 'Benutzer' set first_name = 'Husnain', middle_name = 'Ali', last_name = 'Khan', E-Mail = 'husnainali5 @ gmail.com', Geschlecht = 'männlich', contact_number = '03346767666' wo 'userID' = '' –