PHP - 使用带变量的更新

时间:2012-09-30 04:53:34

标签: php mysql

我正在使用php来更新函数中的mysql数据库。我能够回显我的变量名,并能够在php页面上返回变量。这向我证明我的变量工作正常。

现在,当我使用更新命令时,我的数据库没有响应。是的,我已连接到数据库,一切正常。

这是我用来更新的内容:

mysql_query("UPDATE `table_name`
            SET `int_field` = '$int_value'
            WHERE `username` = $username");

5 个答案:

答案 0 :(得分:3)

$username的值应该用single quotes换行。

mysql_query(" UPDATE table_name 
                 SET int_field = '$int_value' 
               WHERE username = '$username'");

SideNote:您的代码易受SQL Injection攻击。请阅读以下文章,了解如何保护您的代码,

Best way to prevent SQL injection in PHP?

答案 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'");

..似乎对我有用。