我正在使用php来更新函数中的mysql数据库。我能够回显我的变量名,并能够在php页面上返回变量。这向我证明我的变量工作正常。
现在,当我使用更新命令时,我的数据库没有响应。是的,我已连接到数据库,一切正常。
这是我用来更新的内容:
mysql_query("UPDATE `table_name`
SET `int_field` = '$int_value'
WHERE `username` = $username");
答案 0 :(得分:3)
$username
的值应该用single quotes
换行。
mysql_query(" UPDATE table_name
SET int_field = '$int_value'
WHERE username = '$username'");
SideNote:您的代码易受SQL Injection
攻击。请阅读以下文章,了解如何保护您的代码,
答案 1 :(得分:1)
您需要将所有输入引用到查询中。这可以防止SQL注入,但是如果用户无意中输入了一个会破坏查询的特殊字符,也会出现简单的语法错误。
mysql_query('UPDATE table_name '.
'SET int_field = "'.mysql_real_escape_string($int_value).'" '.
'WHERE username = "'.mysql_real_escape_string($username).'"');
答案 2 :(得分:1)
这是如何使用php
中的变量进行更新的正确结构query = gorethink.Table("Lobbys").Get(userinfo.LobbyID).Field("members")
res, err := query.Run(db)
if err != nil {
log.Println(err)
}
defer res.Close()
var members []string
if err = res.All(&members); err != nil {
log.Println(err)
}
for i := 0; i < len(members); i++ {
if members[i] == userinfo.Username {
members = append(members[:i], members[i+1:]...)
i--
}
}
query = gorethink.Table("Lobbys").Get(userinfo.LobbyID).Update(map[string]interface{}{
"members": members,
})
答案 3 :(得分:0)
试试这个:
mysql_query("UPDATE `table_name`
SET `int_field` = '$int_value'
WHERE `username` = '$username'");
答案 4 :(得分:0)
我遇到了同样的问题,发现SET值不需要单引号而且WHERE子句也有...
mysql_query("UPDATE table_name SET int_field=$int_value
WHERE username='$username'");
..似乎对我有用。