再次给我:) 我几乎完成了我的项目,还剩下一件事。 我无法使用pdo更新数据库中的值。 这是我的剧本
<a
href="?UpdateUser=' .$ID. '"
class="btn btn-sm btn-icon btn-pure btn-default on-default edit-row"
data-original-title="Bearbeiten"
ref="" data-toggle="modal" data-target="#EditUser">
<i class="icon wb-edit" aria-hidden="true"></i></a>
<div class="modal fade" id="EditUser" aria-hidden="false" aria-labelledby="EditUserModal"
role="dialog" tabindex="-1">
<div class="modal-dialog modal-simple modal-center">
<form class="modal-content" method="POST" role="form" action="">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="EditUserModal">Benutzer bearbeiten</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xl-12 form-group">
<p><b>Username</b></p>
<input type="text" class="form-control" name="username" value="'.$username.'">
</div>
<div class="col-xl-4 form-group">
<p><b>Vorname</b></p>
<input type="text" class="form-control" name="vorname" value="'.$vorname.'">
</div>
<div class="col-xl-8 form-group">
<p><b>Nachname</b></p>
<input type="text" class="form-control" name="nachname" value="'.$nachname.'">
</div>
<div class="col-xl-8 form-group">
<p><b>Email</b></p>
<input type="email" class="form-control" name="email" value="'.$email.'">
</div>
<div class="col-xl-4 form-group">
<p><b>TelefonNr.</b></p>
<input type="text" class="form-control" name="handy" value="'.$handy.'">
</div>
<div class="col-xl-12 form-group">
<p><b>Admin</b></p>
<input type="text" class="form-control" name="admin" value="'.$admin.'">
</div>
<div class="col-md-12 float-right">
<button class="btn btn-primary btn-outline" data-dismiss="modal" type="submit">Speichern</button>
</div>
</div>
</div>
</form>
</div>
</div>
</td>
</tr>';
}
if(isset($_POST['UpdateUser']))
{
if($_POST['UpdateUser'])
{
$stmt = $odb->execute("UPDATE Account SET username = '$username' , vorname = '$vorname', nachname = '$nachname', email = '$email', handy = '$handy', admin = '$admin' WHERE id=? ");
}
echo "<meta http-equiv='refresh()' content='0'>";
}
我正在做错误的查询吗?或者为什么不更新?
页面上没有显示错误,但值不会更新也不会刷新页面。
答案 0 :(得分:0)
您需要在prepare
之前使用execute
,如下所示:
$query = 'UPDATE Account SET
username = :username,
vorname = :vorname,
nachname = :nachname,
email = :email,
handy = :handy,
admin = :admin
WHERE id = :id';
$stmt = $pdo->prepare($query);
$stmt->execute(array(
':username' => $username,
':vorname' => $vorname,
':nachname' => $nachname,
':email' => $email,
':handy' => $handy,
':admin' => $admin,
':id' => $id
));
此外,最好为每个输入值使用占位符,而不是在查询字符串中使用写入变量。
现在我想出了这个:
您正在使用表单通过方法POST发送数据并尝试阅读$_POST['UpdateUser']
以开始执行更新,但在该表单中没有名为UpdateUser
的字段。
您必须在表单中添加该值,或者使用其他字段更改if (isset($_POST['UpdateUser']))
。