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

时间:2016-03-15 08:09:29

标签: 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();   

//$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> ';
                    }   

                }

            }

        ?>

非常感谢您的时间和帮助

2 个答案:

答案 0 :(得分:2)

你几乎做错了什么。你也用旧的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 ) {               

了解正确设置错误模式here

答案 1 :(得分:-1)

检查引号是否有问题...当你回复里面的html代码时&#39;如果你有&#34; &#34;再次在里面&#39;&#39;像这个例子echo&#39; &#34; &#39;&#39; &#34; &#39;你会遇到问题。你应该使用\&#39;为了避免这些问题,这里回声&#39; &#39; $ DIR&#39; &#39 ;;