我有一个工作查询,我想转换为准备好的语句。迄今为止,不幸的是没有成功。 “affe4.jpg”应该交换为一个变量$ name:如何将我的查询转换为准备好的语句?
<?php
$stmt = $con->query("UPDATE dbdateien
SET papierkorb=0
WHERE dateiname='affe4.jpg'");
//$stmt->bindParam(':dateiname', $name, PDO::PARAM_STR);
//$stmt->execute();
unset($stmt);
?>
我更新了我的代码,为什么它不工作?
<div class="container">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<?php foreach ($erg AS $dateiname): ?>
<tr>
<td>
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-file"></span> <?php echo $dateiname['dateiname']; ?>
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="includes/wiederherstellen.php"><span class="glyphicon glyphicon-repeat"></span> Wiederherstellen</a></li>
<li><a href="#"><span class="glyphicon glyphicon-remove"></span> Endültig löschen</a></li>
</ul>
</div>
</td>
<td><?php echo $dateien['dbuser.user'] ?></td>
</tr>
<?php
var_dump($dateiname);
//$name = $_GET["name"];
$papierkorb=0;
$stmt = $con->prepare("UPDATE dbdateien
SET papierkorb=:papierkorb
WHERE dateiname=:dateiname");
$stmt->bindValue(':papierkorb', $papierkorb, PDO::PARAM_INT);
$stmt->bindParam(':dateiname', $dateiname, PDO::PARAM_STR);
$stmt->execute();
unset($stmt);
?>
<?php endforeach; ?>
</tbody>
</table>
</div>
这里是我的解决方案:
<div class="container">
<table class="table table-hover">
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<?php foreach ($erg AS $dateiname): ?>
<tr>
<td>
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-file"></span> <?php echo $dateiname['dateiname']; ?>
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="includes/wiederherstellen.php"><span class="glyphicon glyphicon-repeat"></span> Wiederherstellen</a></li>
<li><a href="#"><span class="glyphicon glyphicon-remove"></span> Endültig löschen</a></li>
</ul>
</div>
</td>
<td><?php echo $dateien['dbuser.user'] ?></td>
</tr>
<?php
//$name = $_GET["name"];
$papierkorb=0;
$stmt = $con->prepare("UPDATE dbdateien
SET papierkorb=:papierkorb
WHERE dateiname=:dateiname");
$stmt->bindValue(':papierkorb', $papierkorb, PDO::PARAM_INT);
$stmt->bindParam(':dateiname', $dateiname['dateiname'], PDO::PARAM_STR);
$stmt->execute();
unset($stmt);
?>
<?php endforeach; ?>
</tbody>
</table>
</div>
查询中相应的占位符在哪里?在' - > prepare'之后为什么不使用'dateiname =?'和' - > execute([$ v1])''的列表? – mario
'affe4.jp'应该交换到'$ name'。占位符应该是':dateiname'。对不起,我不明白你的两个问题。 – Erich