dourao3960 2016-02-27 22:38
浏览 446
已采纳

致命错误:无法转换类PDOStatement的对象

In this code he give me this probleme :

fatal error: Object of class PDOStatement could not be converted to string in C:\xampp\htdocs\myjob\like_unlike\index.php on line 96

This is line 96:

<div class="rate-count"><?php echo $rate_all_count; ?></div> 

And this is the full code, how can fix this problem ??

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>WebCodo :: Like & Dislike System With jQuery Ajax and PHP</title>

            <link type="text/css" rel="stylesheet" href="css/style.css">
            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>


        </head>

        <body>

        <?php
        include 'config.php';
        $user_ip = $_SERVER['REMOTE_ADDR'];
        $pageID = '38'; // The ID of the page, the article or the video ...

        //function to calculate the percent
        function percent($num_amount, $num_total) {
            @$count1 = $num_amount / $num_total;
            $count2 = $count1 * 100;
            $count = number_format($count2, 0);
            return $count;
        }

        // check if the user has already clicked on the unlike (rate = 2) or the like (rate = 1)
            $dislike_sql = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE ip = "'.$user_ip.'" and id_item = "'.$pageID.'" and rate = 2 ');
            $dislike_sql->execute();   
            //$dislike_count = mysql_result($dislike_sql, 0); 

            $like_sql = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE ip = "'.$user_ip.'" and id_item = "'.$pageID.'" and rate = 1 ');
            $like_sql->execute();         
            //$like_count = mysql_result($like_sql, 0);  

            // count all the rate 
            $rate_all_count = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE id_item = "'.$pageID.'"');
            try {
                $rate_all_count->execute();
            } catch (Exception $e) {
                echo 'Exception : ',  $e->getMessage(), "
";
            }

            $rate_like_count = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE id_item = "'.$pageID.'" and rate = 1');
            $rate_like_count->execute(); 
            $rate_like_percent = percent($rate_like_count, $rate_all_count);

            $rate_dislike_count = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE id_item = "'.$pageID.'" and rate = 2');
            $rate_dislike_count->execute();        
            $rate_dislike_percent = percent($rate_dislike_count, $rate_all_count);
    ?>

    <script>
        $(function(){ 
            var pageID = <?php echo $pageID;  ?>; 

            $('.like-btn').click(function(){
                $('.dislike-btn').removeClass('dislike-h');    
                $(this).addClass('like-h');
                $.ajax({
                    type:"POST",
                    url:"ajax.php",
                    data:'act=like&pageID='+pageID,
                    success: function(){
                    }
                });
            });
            $('.dislike-btn').click(function(){
                $('.like-btn').removeClass('like-h');
                $(this).addClass('dislike-h');
                $.ajax({
                    type:"POST",
                    url:"ajax.php",
                    data:'act=dislike&pageID='+pageID,
                    success: function(){
                    }
                });
            });
            $('.share-btn').click(function(){
                $('.share-cnt').toggle();
            });
        });
    </script>



        <div class="tab-cnt">

            <div class="tab-tr" id="t1">
                <div class="like-btn <?php if($like_count == 1){ echo 'like-h';} ?>">Like</div>
                <div class="dislike-btn <?php if($dislike_count == 1){ echo 'dislike-h';} ?>"></div>


                <div class="stat-cnt">
                    <div class="rate-count"><?php echo $rate_all_count; ?></div>
                    <div class="stat-bar">
                        <div class="bg-green" style="width:<?php echo $rate_like_percent; ?>%;"></div>
                        <div class="bg-red" style="width:<?php echo $rate_dislike_percent; ?>%"></div>
                    </div><!-- stat-bar -->
                    <div class="dislike-count"><?php echo $rate_dislike_count; ?></div>
                    <div class="like-count"><?php echo $rate_like_count; ?></div>
                </div><!-- /stat-cnt -->
            </div><!-- /tab-tr -->

            </div><!-- /share-cnt -->


        </div><!-- /tuto-cnt -->





    </body>
    </html>
  • 写回答

1条回答 默认 最新

  • douqianxun8540 2016-02-27 23:00
    关注
    // 1) prepare the statement
    $rate_all_count = $DB_con->prepare('SELECT COUNT(*) FROM  wcd_yt_rate WHERE id_item=:iid')
    // 2) execute it (with some parameters)
    $rate_all_count->execute( array(':iid'=>$pageID) );
    // 3) fetch the result
    //  - in this case it's just one row having one column
    //    so, let's shift the element from the array returned by stmt->fetch()
    //    and assign it to a variable
    $rate_all_count_value = array_shift($rate_all_count->fetch(PDO::FETCH_NUM));
    
    // 4) do something with the value
    echo $rate_all_count_value;
    

    You've jumped over step 3 by trying to echo the statement object.

    see also: http://docs.php.net/pdo.prepared-statements

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看