MYSQL错误:1054 - 未知列

时间:2012-03-07 05:51:12

标签: mysql

在PHP中使用SQL更新时遇到一些麻烦。下面列出了该功能的摘录:

    $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个字段:captain,member1,member2,member3,member4 (注意:表中有一个记录,其中队长是Oolius,所有成员都是NULL)。

我没有看到我的SQL语句出了什么问题。谢谢你的时间。

4 个答案:

答案 0 :(得分:1)

字符串文字需要用单引号括起来。查询应如下所示:

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

另外,请考虑使用PDO并绑定变量。

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:0)

你需要将Oolius放在引号中,其他MySQL认为它是一个列名。

答案 3 :(得分:0)

使用此

  

$ sqlUpdate ='更新ajax_chat_draft_teams SET   '。$ memberNo。'=''。$ member。'“WHERE captain =”'。$ captain。'“';

我希望它会对你有所帮助。