2012-03-07 111 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.'"';

我希望它会帮助你。

相关问题