简体   繁体   English

无法使用php更新mysql数据库

[英]can't update mysql database using php

I am trying to update a record on my customer mysql table. 我正在尝试更新客户mysql表上的记录。 However I get the following errors: 但是我得到以下错误:

Notice: Undefined index: username in E:\\EasyPHP-12.1\\www\\Register1.php on line 313 注意:未定义的索引:第313行的E:\\ EasyPHP-12.1 \\ www \\ Register1.php中的用户名

Notice: Undefined variable: db_password in E:\\EasyPHP-12.1\\www\\Register1.php on line 315 error updating record 注意:未定义的变量:315行的E:\\ EasyPHP-12.1 \\ www \\ Register1.php中的db_password错误更新记录

I can't see anything wrong with my code. 我的代码看不到任何错误。 And have been looking at it for a few hours with no luck. 并且已经看了几个小时没有运气了。

<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;
  }
?>
  1. The username field in your HTML is in a different form than the submit button, so it's not being sent along with the rest of the fields. HTML中的username段与提交按钮的格式不同,因此不会与其他字段一起发送。

  2. You have no $db_password variable; 您没有$db_password变量; you do have a $db_pass variable. 确实有一个$db_pass变量。 Is that what you meant? 这是你的意思吗?

  3. For requests that modify data, you should really use POST , not GET requests. 对于修改数据的请求,您应该真正使用POST而不是GET请求。

As noted in the comments: 如评论中所述:

You should use $db_password = $_GET['password'] , and correct the quotes as in peterm and Mehdi's answers. 您应该使用$db_password = $_GET['password'] ,并按照peterm和Mehdi的答案更正引号。

There are several problems with your code: 您的代码有几个问题:

You're not getting username parameter with GET method. 您没有使用GET方法获取username参数。 html markup should be corrected to properly define one form instead of having several. html标记应更正以正确定义一种形式,而不是多种形式。

You don't have $db_password variable defined. 您没有定义$db_password变量。 It's probably meant to be 它可能是

$db_password = $_GET['password'];

There is invalid concatenation in $sql3 .Therefore change $sql3有无效的串联, $sql3更改

$sql3 = "UPDATE `customer` SET `Password`='.$db_password.' WHERE `Username`='.$db_username.";

to

$sql3 = "UPDATE `customer` SET `Password`='$db_password' WHERE `Username`='$db_username'";

your query should be like below : 您的查询应如下所示:

$sql3 = "UPDATE `customer` SET `Password`='".$db_password."' 
WHERE `Username`='".$db_username."'";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM