猿问

如何使用 SQL 更新记录

我正在尝试使用来自表单的新用户名记录更新用户名记录。


在我执行该语句后,我的数据库中的一条记录被删除,但它没有被来自表单的新记录替换。我不明白为什么。


索引.php:


<form action="change.php">

    <input type="text" name="txtNewUsername" id="txtNewUsername" placeholder="new username"><br/>

    <button>Change username</button>

</form>

更改.php:


<?php

session_start();

require_once __DIR__.'/connect.php';


$txtNewUsername = $_POST['txtNewUsername'];

$sUsername = $_SESSION['txtUsername'];


try{

    $stmt = $db->prepare('UPDATE users SET username = :sNewUsername WHERE username = :sOldUsername');

    $stmt->bindValue('sNewUsername', $txtNewUsername);

    $stmt->bindValue(':sOldUsername', $sUsername);

    $stmt->execute();


    echo $txtNewUsername;



}catch(PDOEXception $ex){

    echo $ex;

}

我想用来自表单的用户名替换连接用户的用户名。


梵蒂冈之花
浏览 155回答 2
微课
2回答

心有法竹

我看到的第一件事是您没有指定表单方法。没有 amethod=?默认是GET。在这里阅读您正在尝试使用POST检索更新的值更改<form action="change.php">为<form action="change.php" method="post">话虽如此……由于使用get方法是一种简单的技巧,因此最好post在将信息从一个页面传递到另一个页面时使用。您可能还想更改<button>Change username</button>为<input type="button" name="submit" value="Change username" />快乐编码!

江户川乱折腾

$stmt->bindValue('sNewUsername',&nbsp;$txtNewUsername);我不知道这是否导致您的问题,但您缺少“:”sNewUsername
随时随地看视频慕课网APP
我要回答