如何从mysqli切换到PDO

时间:2019-04-22 19:50:26

标签: php mysql pdo

  

我正尝试在我的网站中使用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";
                };

0 个答案:

没有答案