我的MYSQL查询的where部分出错

时间:2017-08-28 17:39:43

标签: php mysql

请帮助我不知道这里有什么问题。我已经提交了错误和下面的实际查询。

错误:

UPDATE `WWM_Login` SET `Username`='RyzeAlchemist',`Email`='smadger@live.co.uk',`FirstName`='test',`MiddleName`='test',`LastName`='test',`DiscordID`='@RyzeAlchemist#6043',`P_openCompletedOrders`=1,`P_openCurrentOrders`=1,`P_openRequestedOrders`=1,`P_openCreateAnOrder`=1,`P_OpenEditUsers`=0,`P_CreateStaff`=1,`P_CreateClient`= WHERE UserID = 9
  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在#<用户ID = 9' WHERE UserID = 9'附近使用正确的语法。在第1行

查询:

"UPDATE `WWM_Login` SET `Username`='$uid',`Email`='$email',`FirstName`='$firstname',`MiddleName`='$middlename',`LastName`='$lastname',`DiscordID`='$DiscordID',`P_openCompletedOrders`=$field[1],`P_openCurrentOrders`=$field[2],`P_openRequestedOrders`=$field[3],`P_openCreateAnOrder`=$field[4],`P_OpenEditUsers`=$field[5],`P_CreateStaff`=$field[6],`P_CreateClient`=$field[7] WHERE UserID = $id"

2 个答案:

答案 0 :(得分:2)

错误似乎是在您的查询结束时:

`P_CreateClient`= WHERE

不应该这样:

`P_CreateClient`='x' WHERE

其中x是您要设置的值

答案 1 :(得分:0)

用单引号括起变量,如下所示:

P_CreateStaff`= '$field[6]'

这样,如果有一个空到NULL的值,它就会这样。我看到你的一些变量被包含在单引号中,但是当没有值时,MySQL试图寻找等于WHERE的值,那个特定的变量就不是这样,所以它把你的WHERE子句作为条件P_CreateStaff。为避免这种情况,请将所有变量用单引号括起来。