mysql UPDATE不更改表

时间:2014-01-31 20:33:31

标签: php html mysql

我创建了一个表单,允许更改用户“UserLevel”。但是,我似乎无法让它发挥作用。它只是在提交后没有更改UserLevel。我绝对是一个PHP新手。但是我在过去一小时内尝试过对此进行研究,似乎无法在这里取得任何进展。可能是我想念的简单事情。任何帮助表示赞赏。

表格

<form action="dm/userUpdate.php" method="post">
Username: <input type="text" name="username" value="Username">
<br>
User Level: <input type="number" name="userlevel" value="0">

<input type="Submit" name="submit" value="Change">
</form>

userUpdate.php

<?php
 mysql_connect('localhost', 'username', 'password') or die(mysql_error());
 mysql_select_db("database") or die(mysql_error());


 $userlevel = mysql_real_escape_string($_POST["userlevel"]);
 $username = mysql_real_escape_string($_POST["username"]);


mysql_query($con,"UPDATE users SET UserLevel= $userlevel WHERE Username ='$username'");

mysql_close($con);
?>

5 个答案:

答案 0 :(得分:0)

你不能混合mysqli(注意)和mysql(没有i)功能。这两个库 NOT 可互换。

同样,你的SQL本身也有语法错误 - mysql_real_escape_string()为你做 NOT 引用字符串 - 它只会转义sql元字符,所以你最终会得到像

这样的东西
... WHERE Username = Miles O\'Brien

而不是

... WHERE Username = 'Miles O\'Brien'

答案 1 :(得分:0)

试试这个

mysql_query("UPDATE users SET UserLevel= '$userlevel' WHERE Username ='$username'");
mysql_close();

你没有定义$ con变量。

答案 2 :(得分:0)

你应该逃避变量。或者不管叫什么。

mysql_query("UPDATE users SET UserLevel= '".$userlevel."' WHERE Username ='".$username."'");

注意我使用常规MySQL,因此不需要链接作为参数。如果您是MySQL的新手,我建议您立即学习MySQLi,因为它有一些方便的改进。

答案 3 :(得分:0)

始终检查语法错误。查看您的表名和表字段,确保它们拼写相同以及拼写。

答案 4 :(得分:0)

<?php
 $con = mysql_connect('localhost', 'username', 'password') or die(mysql_error());
 mysql_select_db("database", $con) or die(mysql_error());


 $userlevel = mysql_real_escape_string($_POST["userlevel"], $con);
 $username = mysql_real_escape_string($_POST["username"], $con);


mysql_query("UPDATE users SET UserLevel= " . $userlevel . " WHERE Username ='" . $username . "'", $con);

mysql_close($con);
?>

使用$ con在连接的数据库上保存连接链接并使用mysql_query(而不是mysqli_query用于MySQLi)以及其他与该连接变量一起使用的函数来使用连接的数据库!