2017-02-22 19 views
0

データベースのテーブルを更新しようとしています。更新クエリのSQL構文のエラー

if ($this->id_member != null) { 
       $sql = "UPDATE `tbl_member` 
         SET `status` = 1 
         WHERE `id_member` = {$this->id_member};"; 
       // echo $sql; 
       $result = $this->database->query($sql); 
} 

エラーメッセージ:何これは奇妙なせるものは、それ実際にアップデートが、私はエラー

コードを取得しているということです

あなたのSQL構文でエラーが発生しています。

私は私のコラムとテーブル名にバックスラッシュを使用してみました:行3 {「成功」「ステータス」}で「」 が 近くを使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書をご確認くださいそれでもエラーは発生します。私はこれに関連するstackoverflow上で質問をチェックしているが、誰も私の問題を解決することはできません。 おかげ

エコー$のSQLの結果は、このAJAX側コントローラである

function activateSubscriber() { 
    $.ajax({ 
     url: "../../system/components/subscribers/controller/activate_subscriber.php", 
     type: "POST", 
     dataType: "json", 
     data: $('#activate_subscriber_form').serialize(), 
     success: function (data) { 
      if (data.status == "success") { 
       $('#activate_subscriber_modal').modal('hide'); 
       getMemberList(); 
       $.notify({ 
        icon: 'glyphicon glyphicon-warning-sign', 
        title: 'Success', 
        message: 'Subscriber was successfully activated.', 
       }, { 
        type: 'success' 
       }); 
      } else { 
       $.notify({ 
        icon: 'glyphicon glyphicon-warning-sign', 
        title: 'Failed', 
        message: 'Subscriber was NOT successfully activated.', 
       }, { 
        type: 'danger' 
       }); 
      } 
     } 
    }); 
} 

ある

UPDATE `tbl_member` 
        SET `status` = 1 
        WHERE `id_member` = 96;{"status":"success"} 

ある:

<?php 

include('../../../config.php'); 
require('../../../classes/mysql.php'); 
include('../model/member.php'); 

$subscriber = new member($_POST['id_member'], $db_data); 
$subscriber_result = $subscriber->activateSubscriber(); 
echo(json_encode($subscriber_result)) 

。あなたのAJAX呼び出しに:(誤非同期を追加)、これを試してみてください

$sql = "UPDATE `tbl_member` 
        SET `status` = '1' 
        WHERE `id_member` = {$this->id_member}"; 
+0

{$ this-> id_member};それを投げることを試みなさい;離れて –

+0

を意味する; ? – Akintunde007

+0

'どこで' id_member' = {$ this-> id_member}; ";'どこに 'id_member' = {$ this-> id_member}"; –

答えて

1

ですチェックしてください。

$.ajax({ 
     url: "../../system/components/subscribers/controller/activate_subscriber.php", 
     type: "POST", 
     async:false, 
     ... 
}); 
+0

私の悪い@ mithの状態はtinyintです – Akintunde007

+0

'{"状態 ":"成功 "}'とクエリを表示する 'echo $ sql'? @PhpDev – mith

+0

{"ステータス": "成功"}はjsonレスポンス – Akintunde007

1
if ($this->id_member != null) { 
      $sql = "UPDATE `tbl_member` 
        SET `status` = 1 
        WHERE `id_member` = ".$this->id_member; 
      // echo $sql; 
      $result = $this->database->query($sql); } 
+0

このコードスニペットは大歓迎ですが、いくつかの助けを与えるかもしれませんが、* how *と* *の説明があれば大幅に改善されます(// meta.stackexchange.com/q/114762)なぜ*これが問題を解決するのか。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。ありがとう。 –

1

statusはvarchar型にこれを試してみてください一重引用符で、それは価値だ' を入れている場合は

モデルは

public function activateSubscriber() { 
     try { 
      if ($this->id_member != null) { 
       $sql = "UPDATE tbl_member SET status = 1 WHERE id_member = {$this->id_member}"; 
       // echo $sql; 
       $result = $this->database->query($sql); 

       if ($result) { 
        return array('status' => 'success'); 
       } else { 
        return array('status' => 'failed'); 
       } 
      } else { 
       return array(
        'error' => "id_member can't be null." 
       ); 
      } 
     } catch (Exception $ex) { 
      echo $ex->getMessage() . ' Errror!!'; 
     } 
    } 
+0

ありがとう。しかし、それでも動作しません – Akintunde007

+0

"$ _POST ['id_member']"に投稿されている値は何ですか? –

+0

メンバーIDは96です。96 – Akintunde007

0

最後に問題を修正しました。これはかなり面白いです。私の構築機能では、私は現在のメンバーの詳細を取得する機能を持っていました。私のデータベースにはもはや存在しないフィールドがありました。私のwhileループで存在しないフィールドの値を取得しようとしていました。

ご協力いただきありがとうございます。私は感謝します!