我正尝试在我的网站中使用PDO,以避免SQL注入。 问题是当我将代码切换到PDO时,没有显示错误,但是 它不起作用。
这是代码。直接进入其他
$stmt = $pdo->prepare("SELECT src FROM mydb WHERE ? LIKE 1");
$stmt->execute([$Q]);
$result = $pdo->prepare("SELECT FOUND_ROWS()");
$result->execute();
$total = $result->fetchColumn();
$numRow = bcdiv(($total / 4), '1', 0);
if($numRow < 4){
$numRow = 1;
};
if($row = $stmt->fetch()){ ?>
<h2>Resultados para la búsqueda <?php echo "$q"?></h2>
<h3>Número de resultados total: <?php echo "$total"?></h3>
<div class="gallery">
<?php do{ ?>
<style>
.gallery{
grid-template-rows: repeat(<?php echo "$numRow" ?>, 10.375em);
}
</style>
<div class="element" id="element"><img src="<?php echo $row['src']; ?>" alt=""></div>
<?php }while($row = $stmt->fetch());{
} ?>
<?php }else{
echo "No hay resultados para la búsqueda";
};
我尝试了这个并且它起作用了,但是我是否避免了sql injectios?
$stmt = $pdo->prepare("SELECT src FROM memes WHERE $Q LIKE 1");
$stmt->execute([$Q]);
$result = $pdo->prepare("SELECT FOUND_ROWS()");
$result->execute();
$total = $result->fetchColumn();
$numRow = bcdiv(($total / 4), '1', 0);
if($numRow < 4){
$numRow = 1;
};
if($row = $stmt->fetch()){ ?>
<h2>Resultados para la búsqueda <?php echo "$q"?></h2>
<h3>Número de resultados total: <?php echo "$total"?></h3>
<div class="gallery">
<?php do{ ?>
<style>
.gallery{
grid-template-rows: repeat(<?php echo "$numRow" ?>, 10.375em);
}
</style>
<div class="element" id="element"><img src="<?php echo $row['src']; ?>" alt=""></div>
<?php }while($row = $stmt->fetch());{
} ?>
<?php }else{
echo "No hay resultados para la búsqueda";
};