我有一个工作查询,我想转换为准备好的语句。到目前为止,遗憾的是没有成功。 “affe4.jpg”应该换成变量$ name:
universal_newlines=True
我已经更新了我的代码,为什么它不起作用?
<?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>
答案 0 :(得分:0)
我假设它是PDO:
$sth = $con->prepare("
UPDATE dbdateien
SET papierkorb=0
WHERE dateiname=?
");
$sth->execute( [ $name ] );
查看PDOStatement::execute处的示例。绑定参数有两种方法:您可以命名它们(:dateiname
)或不命名(?
)。对于仅1个参数,使用占位符?
的详细程度较低。
答案 1 :(得分:0)
<?php
$papierkorb = 0;
$dateiname = "affe4.jpg";
$statement =
"
UPDATE dbdateien
SET papierkorb = :papierkorb
WHERE dateiname = :dateiname
";
$query = $con->prepare($statement);
$query->bindValue(':papierkorb', $papierkorb, PDO::PARAM_INT);
$query->bindParam(':dateiname', $dateiname, PDO::PARAM_STR);
$query->execute();
/*
//another example
$statement =
"
UPDATE dbdateien
SET papierkorb = :papierkorb
WHERE dateiname = :dateiname
";
$query = $con->prepare($statement);
//example, first insert.
$papierkorb = 0;
$dateiname = "affe4.jpg";
$query->execute(array(
':papierkorb'=>$papierkorb,
':dateiname'=>$dateiname
));
//second insert
$papierkorb = 1;
$dateiname = "affe5.jpg";
$query->execute(array(
':papierkorb'=>$papierkorb,
':dateiname'=>$dateiname
));
*/
?>