我正在使用php来更新函数中的一个mysql数据库。我能够回显我的变量名称,并能够返回php页面上的变量。这证明我的变量正常工作。PHP - 使用变量更新
现在,当我使用更新命令,我的数据库不响应。是的,我已连接到数据库,它都可以工作。
这是我在用的更新:
mysql_query("UPDATE `table_name`
SET `int_field` = '$int_value'
WHERE `username` = $username");
我正在使用php来更新函数中的一个mysql数据库。我能够回显我的变量名称,并能够返回php页面上的变量。这证明我的变量正常工作。PHP - 使用变量更新
现在,当我使用更新命令,我的数据库不响应。是的,我已连接到数据库,它都可以工作。
这是我在用的更新:
mysql_query("UPDATE `table_name`
SET `int_field` = '$int_value'
WHERE `username` = $username");
为$username
值应与single quotes
进行包裹。
mysql_query(" UPDATE table_name
SET int_field = '$int_value'
WHERE username = '$username'");
请注意:您的代码容易受到SQL Injection
的影响。请阅读下面的文章就知道如何保护您的代码,
谢谢,这已经使用$用户名引号。并感谢您的SQL注入链接。我也在所有的字段变量上使用了一个sanitize函数。 –
@SlapShot欢迎您:D和欢迎来到StackOverFlow社区! –
试试这个:
mysql_query("UPDATE `table_name`
SET `int_field` = '$int_value'
WHERE `username` = '$username'");
你需要将所有输入的报价来查询。这样可以防止SQL注入,但也会出现简单的语法错误,如果用户无意中输入了会破坏查询的特殊字符,就会发生这种错误。
mysql_query('UPDATE table_name '.
'SET int_field = "'.mysql_real_escape_string($int_value).'" '.
'WHERE username = "'.mysql_real_escape_string($username).'"');
我有同样的问题,发现设定值并不需要使用单引号和WHERE子句不...
mysql_query("UPDATE table_name SET int_field=$int_value
WHERE username='$username'");
..似乎为我工作。
这是如何与一个变量在PHP
mysql_query("UPDATE tablename SET password='". $NPass ."' WHERE custID='$num'");
更新查询后正确的结构,你应该检查的结果,从错误,你会很容易找到的错误部分。对于你的情况,你错过了'$ username'的引号。 – xdazz
将字符串分隔符从int转换为字符串,可能是?mysql_query(“UPDATE table_name SET int_field = $ int_value WHERE username ='$ username'”); – enhzflep
@enhzflep mysql会自动转换它。 –