如何使用SQL更新记录

时间:2019-06-17 13:04:36

标签: php pdo sql-update

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

执行该语句后,数据库中的一条记录将被删除,但不会被来自表单的新记录替换。我不知道为什么。

index.php:

<form action="change.php">
    <input type="text" name="txtNewUsername" id="txtNewUsername" placeholder="new username"><br/>
    <button>Change username</button>
</form>

change.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;
}

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

2 个答案:

答案 0 :(得分:0)

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

我不知道这是否引起您的问题,但您缺少“:” sNewUsername

答案 1 :(得分:0)

我首先看到的是您没有指定表单方法。如果没有method=?,则默认值为 GET Read about it here

您正尝试使用 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" />

快乐编码!