这是尝试对mysql数据错误进行更新的代码,说明未定义的变量
mysql_connect ("localhost", "root", "");
mysql_select_db("supplierdetails");
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
//Run a query
$result = mysql_query ("SELECT * FROM users WHERE id= '$id'");
while ($row = mysql_fetch_array($result))
{
$username=$row['username'];
$password=$row['password'];
}
$query = "UPDATE users SET username = '$username', password = '$password' WHERE id = '$id'";
$result = @mysql_query($query);
//Check whether the query was successful or not
if($result) {
header("message= Users Updated");
}else {
die("Query failed");
}
?>
答案 0 :(得分:0)
您使用了2 connect
无需执行while
而忘记了$id
$con = mysql_connect("localhost", "root", "");
mysql_select_db("supplierdetails");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$id = $_POST['id'];
$username=$_POST['username'];
$password=$_POST['password'];
$query = "UPDATE users SET username = '".$username."', password = '".$password."' WHERE id = '".$id."'";
$result = mysql_query($query);
//Check whether the query was successful or not
if($result) {
echo "message= Users Updated";
}else {
die("Query failed");
}
?>
答案 1 :(得分:0)
你错过了$ id值吗?
并且可以使用echo
来调试或检查脚本结果,而不是header
http://php.net/manual/en/function.header.php
答案 2 :(得分:0)
请更具体地说明哪个变量未定义。
在您发布的代码中$username
和$password
仅在$result
返回结果时设置,如果没有,则while
循环不会运行因此永远不会设置$username
和$password
。
同样$id
看起来也不像是设置了,除非在你的问题中包含的代码之外设置了它。
希望这会有所帮助:)