Php 此MySQL查询的语法可能错误

Php 此MySQL查询的语法可能错误,php,mysql,Php,Mysql,这个MySQL查询的语法有问题吗 提前感谢, 约翰 编辑:好的,根据Pekka的请求,我重复了实际的查询值,这给了我一些想法。现在我用这个: $ttquery = "Update login SET ttemail = 1 WHERE username = ".$row['username'].""; 我得到了这个错误:“where子句”中的未知列“admin”。“admin”是第一个符合我要为其运行此查询的条件的用户名。。。这不是一个字段的名称。你知道我为什么会出错吗 编辑:如果有帮助,下面

这个MySQL查询的语法有问题吗

提前感谢,

约翰

编辑:好的,根据Pekka的请求,我重复了实际的查询值,这给了我一些想法。现在我用这个:

$ttquery = "Update login SET ttemail = 1 WHERE username = ".$row['username']."";
我得到了这个错误:“where子句”中的未知列“admin”。“admin”是第一个符合我要为其运行此查询的条件的用户名。。。这不是一个字段的名称。你知道我为什么会出错吗

编辑:如果有帮助,下面是MySQL回音MySQL查询:

Update login SET ttemail = 1 WHERE username = admin

您可能需要在用户名周围加上单引号

$ttquery = "Update login SET ".$row['ttemail']." = '1' WHERE username = '".$row['username']."'";
如果您使用的是
sprintf
,您将有:

$ttquery = sprintf("Update login SET %1$s = '1' WHERE username = '%2$s'", $row['ttemail'],$row['username']);

您可能需要在用户名周围加上单引号

$ttquery = "Update login SET ".$row['ttemail']." = '1' WHERE username = '".$row['username']."'";
如果您使用的是
sprintf
,您将有:

$ttquery = sprintf("Update login SET %1$s = '1' WHERE username = '%2$s'", $row['ttemail'],$row['username']);
试试这个

$ttquery = sprintf("Update login SET ".$row['ttemail']." = '1' WHERE username = '" . $row['username'] ."'"
i、 例如,用户名=“[你的价值]”

试试这个

$ttquery = sprintf("Update login SET ".$row['ttemail']." = '1' WHERE username = '" . $row['username'] ."'"
Update login SET ttemail = 1 WHERE username = admin
i、 例如,用户名=“[你的价值]”

Update login SET ttemail = 1 WHERE username = admin
在SQL中,字符串用单引号括起来,表/列名不带引号。您需要修复PHP代码,以便生成以下内容:

Update login SET ttemail = 1 WHERE username = 'admin'
在与PHP发生冲突之前,请确保您理解基本SQL;-)

在SQL中,字符串用单引号括起来,表/列名不带引号。您需要修复PHP代码,以便生成以下内容:

Update login SET ttemail = 1 WHERE username = 'admin'
在与PHP发生冲突之前,请确保您理解基本SQL;-)

这应该有效:

$ttquery=“更新登录集”。$row['ttemail']。”='1'其中username='“$row['username']。”

这应该可以:


$ttquery=“更新登录集”。$row['ttemail']。”='1'其中username='“$row['username']。”

伙计,小心sql注入。
另外,如果您没有实际使用sprintf()
,为什么要调用它呢?

伙计,小心sql注入。
另外,如果您没有实际使用,为什么要调用
sprintf()

@John无意冒犯,但这是我第四次尝试告诉您,请显示最终生成的查询,而不是PHP源代码。无法从PHP源代码调试查询,因为错误可能在其中一个变量中。可能是错误的吗?运行它,您将看到它是否错误。我们无法告诉您,因为我们不知道您的表结构和$row包含什么…这取决于
$row['ttemail']
$row['username']
@Pekka如何找到最终生成的查询?@John Echo使用
$ttquery
@John no offer,但这是我第四次尝试告诉您,请显示最终生成的查询,而不是PHP源代码。无法从PHP源代码调试查询,因为错误可能在其中一个变量中。可能是错误的吗?运行它,您将看到它是否错误。我们不能告诉您,因为我们不知道您的表结构和$row包含什么…这取决于
$row['ttemail']
$row['username']
@Pekka如何找到最终生成的查询?@John Echo
$ttquery
%1$s'>的值,您确定吗?你的意思是“%1$s”或“%1\$s”,我想P“%1$s”->您确定吗?你的意思是“%1$s”或“%1\$s”,我想P