我遇到问题,我无法关闭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;
?>
答案 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