我正在尝试使用来自表单的新记录更新用户名记录。
执行该语句后,数据库中的一条记录将被删除,但不会被来自表单的新记录替换。我不知道为什么。
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;
}
我想用一个来自表单的用户名替换连接用户的用户名。
答案 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" />
快乐编码!