2012-03-07 22 views
0

PHPでのSQLの更新に問題があります。下記関数の抽出物である:MYSQLエラー:1054 - 不明な列

$captain = $this->getUserName(); 
    $member = $textParts[1]; 
    $memberNo = 'member1'; 

    $sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.'='.$member.' WHERE captain='.$captain.''; 

    $result = $this->db->sqlQuery($sqlUpdate); 

クエリに到達すると、それは、次のエラーをスロー:

Query: UPDATE ajax_chat_draft_teams SET member1=user WHERE captain=Oolius 
Error-Report: Unknown column 'Oolius' in 'where clause' 
Error-Code: 1054 error occured! 

テーブルajax_chat_draft_teams 5つのフィールドがありますMEMBER1、member2、member3、member4、船長 (注:キャプテンがOoliusで、すべてのメンバーがNULLであるレコードがテーブルにあります)。

私のSQLステートメントに何が問題なのか見当たりません。御時間ありがとうございます。

+0

オリオールズの周りの引用符は、それは私を悩ませています。 –

答えて

1

はこれを試してみてください。

+0

ありがとうヒープが魅力的でした。それが私に多くの分裂をもたらしました。 – user1253886

0

Ooliusを引用符で囲む必要があります。MySQLはそれがカラム名だと思います。

1

文字列リテラルは、一重引用符で囲む必要があります。また、PDOの使用を検討してバインド変数

UPDATE ajax_chat_draft_teams SET member1='user' WHERE captain = 'Oolius'

:クエリは次のようになります。

$sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.' = "'.$member.'" WHERE captain = "'.$captain.'"'; 
+0

+1のバインディングでは、このようなSQLがインジェクション攻撃を求めています – muffinista

0

私はそれはあなたを助けることを願っています。この

$sqlUpdate = 'UPDATE ajax_chat_draft_teams SET '.$memberNo.'="'.$member.'" WHERE captain="'.$captain.'"';

を使用します。

関連する問題