繁体   English   中英

PHP更新添加了ID为0的新记录

[英]PHP update adds new record with an id of 0

这是我第一次来,请耐心等待。 我曾经尝试过,但没有成功! 我的数据库有7个字段,最后一个字段是“ id”作为键和自动增量,我试图仅更新1条记录中的一个或所有字段。 但是,我只是获得一条包含所有先前数据的新记录,但id却增加了1。这是我的代码:

<?php
$error = '';
ini_set('display_errors', 1);
session_start();
if(!isset($_SESSION['login_user'])){ // If session is not set then    redirect to Login Page
header("Location:Login.php");  
}

// grab connection code
$login_id = $_SESSION['login_id'];

include "connection.php";

$query = "SELECT * FROM bvoa_login WHERE id = '$login_id'";

// get result
$result = $conn->query($query);

//create array of result
$row = $result->fetch_assoc();
// set existing data into variables
$curr_name = $row["name"];
$curr_username = $row["username"];
$curr_email = $row["email"];
$curr_property_no = $row["property_no"];    
$curr_website = $row["website"];    

if($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!empty($_POST['username']) && !empty($_POST['email'])
        && !empty($_POST['new_password']) && !empty($_POST[  'password_confirm']) && !empty($_POST['location']) && !empty($_POST['real_name'])){
        $username = $_POST['username'];
        $real_name = $_POST['real_name'];
        $email = $_POST['email'];
        $new_password = $_POST['new_password'];
        $password_confirm = $_POST['password_confirm'];
        $location = $_POST['location'];
        $website = $_POST['website'];

        // compare passwords...
        if (strcmp($new_password, $password_confirm) == 0){
            $password_hash = sha1($new_password);
            $query = "UPDATE `bvoa_login` SET `username`='$username' WHERE `id`='$login_id'";
            $result = $conn->query($query);
        }else{
            $error = "Passwords do not match.";     
    }
    }else{  
    $error = "You must enter all fields to continue.";
    }
$conn->close();
}
?>

好的,我已经调整了脚本,因此它只有1个查询。 数据库中有1条ID为1的记录。我仍然添加了另一条ID字段中没有任何条目的记录。

<?php
$error = '';
ini_set('display_errors', 1);
session_start();
if(!isset($_SESSION['login_user'])){ // If session is not set then redirect to Login Page
    header("Location:Login.php");  
}

// grab connection code
$login_id = $_SESSION['login_id'];

include "connection.php";


if($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!empty($_POST['username']) && !empty($_POST['email'])
        && !empty($_POST['new_password']) && !empty($_POST[  'password_confirm']) && !empty($_POST['location']) && !empty($_POST['real_name'])){
        $username = $_POST['username'];
    $real_name = $_POST['real_name'];
        $email = $_POST['email'];
        $new_password = $_POST['new_password'];
    $password_confirm = $_POST['password_confirm'];
        $location = $_POST['location'];
    $website = $_POST['website'];

    // compare passwords...
    if (strcmp($new_password, $password_confirm) == 0){
        $password_hash = sha1($new_password);
        $query = "UPDATE `bvoa_login` SET `username`='$username' WHERE `id`='$login_id'";
        $result = $conn->query($query);
    }else{
        $error = "Passwords do not match.";     
    }
}else{  
$error = "You must enter all fields to continue.";
}
$conn->close();
}
?>

解决-非常愚蠢的错误-'profile.php'页面与'register.php'重复,我忘了更改表单操作,因此它调用了错误的页面-DUHHH! 感谢所有花时间发表评论的人。

暂无
暂无

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

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