Php 将旧脚本转换为PDO结果不显示?

Php 将旧脚本转换为PDO结果不显示?,php,mysql,pdo,Php,Mysql,Pdo,好的,我对PDO不是很熟悉,我刚刚开始,有人能帮我吗?为什么我的结果不会显示?页面正在运行,但没有显示任何数据 <?php require_once 'db/_db.php'; $stmt = $db->prepare("SELECT * FROM article"); $stmt->execute(); $result = $stmt->fetchAll(); $total_rows = $stmt->rowCount(); //$a

好的,我对PDO不是很熟悉,我刚刚开始,有人能帮我吗?为什么我的结果不会显示?页面正在运行,但没有显示任何数据

<?php        

require_once 'db/_db.php';  
$stmt = $db->prepare("SELECT * FROM article");
$stmt->execute();
$result = $stmt->fetchAll();
$total_rows = $stmt->rowCount();   

//$allRecords = mysql_query('select * from article');
//$total_rows = mysql_num_rows($allRecords);               

//$base_url = 'https://localhost/pagi/';                //

  global $per_page;                    

  $num_links = 4;                          

  $total_rows = $total_rows;

  $cur_page = 1;         

  if(isset($_GET['page']))
    {
      $cur_page = $_GET['page'];

      $cur_page = ($cur_page < 1)? 1 : $cur_page;            //if page no. in url is less then 1 or -ve
    }            
$offset = ($cur_page-1)*$per_page;       //setting offset   
$pages = ceil($total_rows/$per_page);
$start = (($cur_page - $num_links) > 0) ? ($cur_page - ($num_links - 1)) : 1;
$end   = (($cur_page + $num_links) < $pages) ? ($cur_page + $num_links) : $pages;    

  //$res = mysql_query("SELECT * FROM article ORDER BY id DESC LIMIT ".$per_page." OFFSET ".$offset);      

  $stm = $db->prepare("SELECT * FROM article ORDER BY id DESC LIMIT ".$per_page." OFFSET ".$offset);

  $stm->execute();
  $res = $stm->fetchAll();
  $rows = $stm->rowCount();
  if($rows < 1){
        header("Location: news-events.php");
        exit;
    }    

        if(is_resource($result))
        {       
          foreach( $res as $row ) {               

            $desc = $row["ne_article"];
            $img = $row['ne_image'];
            if(!empty($img)){
            $img = '<br/><img src="uploads/images/'.$img.'" alt="" class="responsive-shrink">';
            }else{
            $img = '';
            }
            $youtube = $row["ne_youtube"];   

            if(!empty($youtube)){
            $youtube = '<br/><div class="video-container"><iframe src="http://www.youtube.com/embed/'.$youtube.'"></iframe></div>';
            }else{
            $youtube = '';
            }
            //shortenString($row['ne_article']);
        ?>

            <h4><a href="<?php echo $row['ne_url']; ?>"><?php echo $row['ne_title']; ?></a></h4>

            <h5><b>Views:</b> <?php echo $row['views']; ?>, <b>Posted on:</b> <?php echo format_date($row['created']); ?></h5>                

            <?php echo $img; ?>

            <?php echo $youtube; ?>

            <p>

            <br/><?php echo  bbcode(nl2br(shortenString($desc))); ?>

            </p>

             <div id="pagelink">

                <a href="<?php echo $row['ne_url']; ?>" class="myButton"> Read more...</button></a>
                </div>
        <?php
            }
        }
        ?>


  <div id="pagination">
    <div id="pagiCount">
    <br/><br/>
        <?php

            if(isset($pages))
            {  
                if($pages > 1)       
                {    if($cur_page > $num_links)     // for taking to page 1 //
                    {   $dir = "First";
                        echo '<span id="prev"> <a href="'.$_SERVER['PHP_SELF'].'?page='.(1).'">'.$dir.'</a> </span>';
                    }
                   if($cur_page > 1)
                    {
                        $dir = "Prev";
                        echo '<span id="prev"> <a href="'.$_SERVER['PHP_SELF'].'?page='.($cur_page-1).'">'.$dir.'</a> </span>';
                    }                                        

                    for($x=$start ; $x<=$end ;$x++)

                    {                           

                        echo ($x == $cur_page) ? '<strong>'.$x.'</strong> ':'<a href="'.$_SERVER['PHP_SELF'].'?page='.$x.'">'.$x.'</a> ';
                    }
                    if($cur_page < $pages )

                    {   $dir = "Next";

                        echo '<span id="next"> <a href="'.$_SERVER['PHP_SELF'].'?page='.($cur_page+1).'">'.$dir.'</a> </span>';
                    }

                    if($cur_page < ($pages-$num_links) )
                    {   $dir = "Last";                      

                        echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$pages.'">'.$dir.'</a> ';
                    }   

                }

            }

        ?>

视图:,发布于:





非常感谢您的时间和帮助

您几乎每件事都做错了。您也使用了旧的mysql

要获取数据库中的记录数,您应该不要选择所有行,也不要提取它们。您必须已经选择计数

$total_rows = $pdo->query("SELECT count(1) FROM article")->fetchColumn();
这就是PDO的运作方式

此外,对于其他查询,您应该使用准备好的语句
最后,您必须取出所有无用的验证,并立即从
foreach
开始:

$stm = $db->prepare("SELECT * FROM article ORDER BY id DESC LIMIT ?,?");
$stm->execute([$offset,$per_page]);
$res = $stm->fetchAll();
foreach( $res as $row ) {               

并阅读正确设置错误模式。

检查引号是否有问题。。。当您在“”内回显html代码时,如果您有“”,并且再次在“”内回显,如此示例回显“”,您将遇到问题。您应该在此处使用\'以避免这些问题回音'.$dir'

始终检查错误。不要假设您的查询成功。是的,我已经修复了该问题,但仍然没有数据显示。顺便说一句,
$result
未定义,但您检查所述变量是否为ressource
$res
将包含任何行。如果启用了错误报告,您会看到这一点。是的,我认为这是一个数组,对吗?因此,我到底是如何解决这个问题的呢?我真的很困惑,没有引号,因为分页链接正在显示,也在工作,只有这里的数据没有显示