无法关闭pdo

时间:2016-03-12 19:09:20

标签: php mysql pdo

我遇到问题,我无法关闭pdo,$ pdo = null不活跃,谢谢:)

function about_post(){
        include('connect.php');
        $getId= $_GET['getid'];
        return $sql = $pdo->query("SELECT p.post_id,p.post_title,p.post_by, p.post_time,p.post_view, u.id_user,u.username,u.info,u.avatar FROM post p, user u WHERE p.post_id='$getId' && p.post_by=u.id_user");
    } //connect 

    $about_content= about_post();
             while ( $row = $about_content->fetch(PDO::FETCH_ASSOC)) { ?>
                 <p><?php echo $row['info']; ?></p>
                       </div>
                    </div>
           <?php } $pdo=null;
              ?> 

1 个答案:

答案 0 :(得分:1)

以这种方式更改脚本:

include_once( 'connect.php' );

function about_post()
{
    global $pdo;
    $getId= $_GET['getid'];
    (...)
}

include_once()include()不同,因为如果文件已经加载,则php省略再次加载:通过这种方式,您没有多个连接 1 < / SUP>

global $pdo:通过这种方式,当你在函数中使用$pdo变量时,你会引用$pdo定义的函数范围。

1 实际上,这并不完全正确:在原始代码中,函数内部有include(),每次调用函数时都会有一个新连接。在函数外部使用include(),可能(我不知道文件中的内容)只是用新连接覆盖旧连接。无论如何,include_once()是您特定案例的最佳解决方案。 (我知道这个解释可能很模糊,但我的英语非常不合适。如果一个善良的人想要更好地解释它,请随意去做...)

详细了解variable scope