Php MYSQL查询的where部分出错

Php MYSQL查询的where部分出错,php,mysql,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_openCurrentOr

请帮忙,我不知道这里出了什么问题。我已经在下面提交了错误和实际查询

错误:

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服务器版本对应的手册,以了解第1行“WHERE UserID=9”附近要使用的正确语法

查询:

"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"

错误似乎出现在查询的末尾:

`P_CreateClient`= WHERE
这不应该是:

`P_CreateClient`='x' WHERE

其中x是要设置的值

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

P_CreateStaff`= '$field[6]'

这样,如果有一个从空到空的值,它将接受它。我看到一些变量用单引号括起来,但当MySQL试图寻找一个等于WHERE的值时,这个特定变量就不是这样了,所以它将WHERE子句作为P_CreateStaff的条件。为了避免这种情况,请将所有变量都用单引号括起来。

如果使用带有参数绑定的预处理语句,您可能会跳过类似的问题。您错过了
p\u CreateClient
的值,类似于
$field[7]
没有任何值会导致查询进入
P\u CreateClient=WHERE UserID=9
非常感谢您,我是个白痴,没有发现!发生在我们所有人身上;-)