这个MySQL查询的语法有问题吗?
提前致谢,
约翰
$ttquery = sprintf("Update login SET ".$row['ttemail']." = '1' WHERE username = ".$row['username']."");
编辑:好的,根据Pekka的要求,我回复了实际的查询值,这给了我一些想法。现在我正在使用它:
$ttquery = "Update login SET ttemail = 1 WHERE username = ".$row['username']."";
我收到此错误:'where子句'中的未知列'admin'。 “admin”是第一个符合我想要运行此查询的条件的用户名...它不是字段的名称。关于我为什么会收到错误的任何想法?
编辑:如果有帮助,这是MySQL回显的MySQL查询:
Update login SET ttemail = 1 WHERE username = admin
答案 0 :(得分:3)
您可能需要围绕用户名
的单引号$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']);
答案 1 :(得分:1)
Update login SET ttemail = 1 WHERE username = admin
在SQL中,字符串由单引号括起,表/列名称不加引号。您需要修复PHP代码,以便生成:
Update login SET ttemail = 1 WHERE username = 'admin'
尝试确保在敲击PHP之前先了解基本SQL; - )
答案 2 :(得分:0)
试试这个
$ttquery = sprintf("Update login SET ".$row['ttemail']." = '1' WHERE username = '" . $row['username'] ."'"
即,用户名='[你的价值]'
答案 3 :(得分:0)
这应该有效:
$ttquery = "Update login SET ".$row['ttemail']." = '1' WHERE username = '".$row['username']."'";
答案 4 :(得分:0)
sprintf()
?