【问题标题】:PHP/MySQL - UPDATE Query inserts new record instead updating the recordPHP/MySQL - 更新查询插入新记录而不是更新记录
【发布时间】:2020-07-19 15:33:26
【问题描述】:

我正在创建一个 Swift 应用程序,其中一个功能是用户可以更新他们的用户详细信息,并将通过 PHP 将其复制到 MySQL 数据库中。

但是,当通过 HTTP 请求执行查询时,会向数据库中插入一条新记录,而不是更新用户 ID 对应的位置。任何建议将不胜感激。

提前致谢。

<?php

    require 'Config.php';

    $db = mysqli_connect($DB_HOST, $DB_USERNAME, $DB_PASSWORD);

    if($_SERVER['REQUEST_METHOD']=='POST') {
        $userId = $_POST['UserId'];
        $forename = $_POST['ForeName'];
        $middleName = $_POST['MiddleName'];
        $surname = $_POST['Surname'];
        $emailAddress = $_POST['UserEmailAddress'];
        $gender = $_POST['Gender'];
        $mobileNumber = $_POST['PhoneNumber'];

        $dbconnect = mysqli_select_db($db, $DB_NAME);

        $query = "UPDATE c1723141_algoTrading.tbluser SET UserEmailAddress='$emailAddress',Forename='$forename',Surname='$surname',Gender='$gender',PhoneNumber='$mobileNumber,MiddleName='$middleName' WHERE c1723141_algoTrading.tbluser.UserId='$userId'";

        mysqli_query($db, $query);

        echo $query;
    }

?>

【问题讨论】:

  • 电话号码后面缺少引号,所以我很惊讶它执行查询时没有语法错误,但是您的代码不会检查它是否执行。您应该出于各种原因使用准备好的语句,引号就是其中之一 - 当您的用户姓氏是 O'Hara 时会怎样?。
  • @droopsnoot 这只是为了证明应用程序能够更新记录,愚蠢的是我错过了一个引号,但不幸的是它仍然没有用。记录仍被插入而不是更新

标签: php mysql phpmyadmin cpanel


【解决方案1】:

请检查您是否有主键列。如果没有,请创建一个并设置为 auto_increment 。 您可以做的其他事情是,如果您的 UserId 列是整数,则将其设置为主键。我认为查询没有错误。如果不行,请恢复,会寻找其他解决方案

【讨论】:

    猜你喜欢
    • 2014-05-18
    • 2014-12-16
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    • 2021-12-21
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多