我正在尝试使用来自表单的新用户名记录更新用户名记录。在我执行该语句后,我的数据库中的一条记录被删除,但它没有被来自表单的新记录替换。我不明白为什么。索引.php:<form action="change.php"> <input type="text" name="txtNewUsername" id="txtNewUsername" placeholder="new username"><br/> <button>Change username</button></form>更改.php:<?phpsession_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 回答
心有法竹
TA贡献1866条经验 获得超5个赞
我看到的第一件事是您没有指定表单方法。没有 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" />
快乐编码!
江户川乱折腾
TA贡献1851条经验 获得超5个赞
$stmt->bindValue('sNewUsername', $txtNewUsername);
我不知道这是否导致您的问题,但您缺少“:”sNewUsername
- 2 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消