4

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

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

这是我用来更新的:

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

5 回答 5

3

的值$username应该用single quotes.

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

旁注:您的代码容易受到SQL Injection. 请阅读以下文章以了解如何保护您的代码,

在 PHP 中防止 SQL 注入的最佳方法是什么?

于 2012-09-30T04:55:13.757 回答
1

您需要将所有输入引用到查询中。这可以防止 SQL 注入,但也可以防止在用户无意中输入会破坏查询的特殊字符时发生的简单语法错误。

mysql_query('UPDATE table_name '.
            'SET int_field = "'.mysql_real_escape_string($int_value).'" '.
            'WHERE username = "'.mysql_real_escape_string($username).'"');
于 2012-09-30T05:27:13.387 回答
1

这是如何使用 php 中的变量进行更新的正确结构

mysql_query("UPDATE tablename SET password='". $NPass ."' WHERE custID='$num'");
于 2016-01-03T05:29:46.403 回答
0

我遇到了同样的问题,发现 SET 值不需要单引号,而 WHERE 子句确实...

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

..似乎对我有用。

于 2014-01-28T07:43:48.780 回答
0

尝试这个 :

         mysql_query("UPDATE `table_name`
         SET `int_field` = '$int_value'
        WHERE `username` = '$username'");
于 2012-09-30T05:00:15.853 回答