我正在尝试更新客户mysql表上的记录。但是我收到以下错误:
注意:未定义索引:E:\ EasyPHP-12.1 \ www \ Register1.php中的用户名 在线313
注意:未定义的变量:db_password in E:\ EasyPHP-12.1 \ www \ Register1.php在315行错误更新记录
我看不出我的代码有什么问题。并且一直在看它几个小时没有运气。
<div class="footer">
<img src="images/gardening5.jpg" alt="Image">
<div>
<h1>Tips of the Week</h1>
<form method= "get">
<form method="get">
<p>Username:
<input name="username" type="text">
</p>
</form>
<p>
<form method="get">
<p>Password:
<input name="password" type="password">
</p>
<p>First Name:
<input name="first name" type="first name">
</p>
<p>Last Name:
<input name="last name" type="last name">
</p>
<p>1st Line of Address:
<input name="1st line of address" type="1st line of address">
</p>
<p>2nd Line of Address:
<input name="2nd line of address" type"2nd line of address">
</p>
<p>Town:
<input name="town" type"town">
</p>
<p>PostCode:
<input name="postcode" type="postcode">
</p>
<p>Phone Number
<input name="phone_number" type="phone_number">
</p>
<p>
<input name="submit3" type="submit" value="update customer record">
</p>
</form>
</form>
<?php
$host="localhost"; // Host name
$tbl_name="customer"; // Table name
$db_user="root";
$db_pass="";
$connect = mysql_connect("$host", "$db_user", "$db_pass");
$db_name="the_shop"; // Database name
mysql_select_db("$db_name");
if(isset($_GET['submit3'])){
$db_username = $_GET['username'];
$sql3 = "UPDATE `customer` SET `Password`='.$db_password.' WHERE `Username`='.$db_username.";
$result3 = mysql_query($sql3);
mysql_query($sql3) or die('error updating record');
echo $sql3;
}
?>
答案 0 :(得分:2)
HTML中的username
字段与提交按钮的格式不同,因此不会与其他字段一起发送。
您没有$db_password
个变量;你做有一个$db_pass
变量。这是你的意思吗?
对于修改数据的请求,您应该使用POST
,而不是GET
请求。
如评论中所述:
您应该使用$db_password = $_GET['password']
,并在peterm和Mehdi的答案中更正引号。
答案 1 :(得分:1)
您的代码存在一些问题:
您没有使用username
方法获取GET
参数。应该更正html标记以正确定义一个表单而不是几个。
您没有定义$db_password
变量。它可能意味着
$db_password = $_GET['password'];
$sql3
中存在无效的连接。因此请更改
$sql3 = "UPDATE `customer` SET `Password`='.$db_password.' WHERE `Username`='.$db_username.";
到
$sql3 = "UPDATE `customer` SET `Password`='$db_password' WHERE `Username`='$db_username'";
答案 2 :(得分:0)
您的查询应如下所示:
$sql3 = "UPDATE `customer` SET `Password`='".$db_password."'
WHERE `Username`='".$db_username."'";