试图获得比使用pdo更少的值

时间:2013-05-06 16:23:34

标签: php mysql

我试图获得的值小于我的最后一个分页值,但我仍然得到空数组,即使那里应该有值。是我的语法是导致这个还是我称错了?提前谢谢。

 <?php
    include("connect.php"); //connect to database
        //create query

        $get_messages_query = $db->prepare("
            SELECT * FROM `blogposts`
            WHERE `postid` < ?
            ORDER BY `postid` DESC 
            LIMIT 5
            ");
        //Homepage should have last 5 blog posts this will take the 
        //last 5 entered into the database and put them into an 
        //array
    $one = 1;
$zero = 0;

$lastpage = $_GET['id'];

$pageback = $lastpage - 1;
$pageforward = $lastpage + 1;


        $get_messages_query->execute(array($_POST['idid']));
while($row = $get_messages_query->fetch())
    {
        if($row['comments'] == $one){
            $id = $row['postid'];
        $blog_post_history .=
        '<div class="post" id="post">
        <h1>' . $row['title'] .' </h1>
        <h2>Written by: ' . $row['author'] . '</h2>
        <p>'. $row['content'] . '</p>
        <a href="addcomment.php?id='. $row['postid'] .'">Add Comment</a>
        <a href="showcomments.php?id='. $row['postid'] . '">Show Comments</a>
        <br>
        <br>
    </div>';
}
    else{
        $id - $row['postid'];
        $blog_post_history .=
      '<div class="post" id="post">
       <h1>'. $row['title'] .' </h1>
        <h2>Written by: ' . $row['author'] . '</h2>
       <p>'. $row['content'] . '</p>
       <a href="viewblog.php?id='. $row['postid'] .'">View Blog</a>

       <br>
       <br>
  </div>';
    }

}

1 个答案:

答案 0 :(得分:0)

确保$_POST['idid']包含您认为它的整数值。例如,如果您不匹配POST参数的名称,或者该值是字符串而不是数字,那么您可能正在搜索postid < 0

启用MySQL general query log,您可以在执行时查看最终的SQL(包括动态参数)。这是一种简单的方法来验证SQL是否正在运行您期望的那样。

当然,只在数据库的开发或暂存实例上执行此操作,因为在生产站点上启用常规查询日志会对性能产生很大影响。

还要在mysql客户端中测试查询,看看结果是否符合您的认为。你说“应该”是数据,但是值得用直接查询进行双重检查,即在不涉及PHP / PDO的情况下进行测试。