2012-03-07 167 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

圍繞Oolius折騰引號,這是困擾我。 – 2012-03-07 05:53:42

回答

1

試試這個:

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

感謝堆工作的魅力。那讓我感到非常激動。 – user1253886 2012-03-07 06:05:48

0

您需要將Oolius放在其他MySQL認爲它是列名的引號中。

1

字符串文字需要用單引號括起來。查詢應該是這樣的:

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

而且,考慮使用PDO和綁定變量。

+0

+1綁定,這樣的SQL是乞求注入攻擊 – muffinista 2012-03-07 18:49:59

0

使用此

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

我希望它會幫助你。