这是以前的代码,它起作用了
<?php
include ("connect.php"); // $conn
$sql = "SELECT name, date, adress, number FROM event ORDER BY date ASC LIMIT 4";
foreach ($conn->query($sql) as $row){
$date = date('j.n.Y');
$actDate = strtotime($date);
//echo $date; Ausgabe aktuelles Datum im deutschen Format
//echo $actDate; Ausgabe des Datums als Zahl
$dbDate = $row['date'];
$eventDate = strtotime($dbDate);
//echo $dbDate; Ausgabe des Datums der Veranstaltung
//echo $eventDate; Veranstaltungsdatum als Zahl
if ($actDate <= $eventDate) {
// hide entrys with lower date
$originalDate = $row['date'];
$formatDate = date('d.m.Y', strtotime($originalDate));
// hide entrys with lower date
echo "
<tr>
<td>".$row['name']."</td>
<td>$formatDate</td>
<td class='w3-hide-small'>".$row['adress']." ".$row['number']."</td>
</tr>
";
}
}
?>
现在我添加了一个针对sql注入的prepared语句,现在新代码没有错误输出,但是db也没有数据输出,我不知道在哪里可以找到错误。你可以忽略日期格式,我没有改变那里的任何东西,它只是准备编辑它不工作,我想。
<?php
include ("connect.php"); // $conn
$sql = $conn->prepare("SELECT name, date, clock, adress, number, link, info FROM event WHERE (name, date, clock, adress, number, link, info) = (?, ?, ?, ?, ?, ?, ?) ORDER BY date ASC");
$sql->bind_param("sississ", $name, $date, $clock, $adress, $number, $link, $info);
$sql->execute();
$result = $sql->get_result();
while ($row = $result->fetch_assoc()) {
foreach ($conn->query($sql) as $row){
$date = date('d.m.Y');
$actDate = strtotime($date);
//echo $date; Ausgabe aktuelles Datum im deutschen Format
//echo $actDate; Ausgabe des Datums als Zahl
$dbDate = $row['date'];
$eventDate = strtotime($dbDate);
//echo $dbDate; Ausgabe des Datums der Veranstaltung
//echo $eventDate; Veranstaltungsdatum als Zahl
if ($actDate <= $eventDate) { // Einträge mit abgelaufenem Datum verbergen
$originalDate = $row['date'];
$formatDate = date('d.m.Y', strtotime($originalDate));
echo "
<div class='accordionEvent nav_bottom w3-container w3-center'><h4>".$row['name']." am $formatDate ab ".$row['clock']."</h4></div>
<div class='panel head'>
<p>Adresse: ".$row['adress']." ".$row['number']."</p>
<p>Link: <a href=".$row['link']." target='_blank'>".$row['link']."</a></p>
<p>".$row['info']."</p>
</div>
<br>
";
}
}
}
$sql->close();
$conn->close();
?>
2条答案
按热度按时间li9yvcax1#
您仍然有一行原始代码,它打破了循环:
i5desfxk2#
确保使用相同的语句。如果没有参数,可以跳过绑定部分。
然后拆下管路16
和51号线
当前您正在反复执行查询并覆盖
$row
很可能你没有得到一个错误,因为$sql
是准备好的语句而不是字符串。删除上面提到的行就可以了。