我在想,在函数中使用db连接将它返回到项目的任何位置是否安全且可以?如果我想重用这个项目来构建另一个项目,我只能在这个函数中更改数据库连接,而且我不需要遍历脚本搜索和更改连接参数。
function connect_db(){
$db = new PDO('mysql:host=localhost;dbname=;charset=utf8', '', '');
return $db;
}
现在我可以在任何地方调用它。通过返回
,只需要一次.php文件$db = connect_db();
然后是随后的任何陈述。
可以安全吗?
如何在页面末尾关闭这样的连接?
$db = NULL;
显然不起作用。
答案 0 :(得分:1)
是的,拥有一个可以创建数据库连接的地方是安全的。我会稍微改变你的功能:
<?php
function connect_db(){
try{
return new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8'));
}catch (PDOException $e){
echo '<p>Error connecting to database! ' . $e->getMessage() . '</p>';
die();
}
}
?>
您可以在documentation中了解有关PDO构造函数的更多信息。
以这种方式创建的close the PDO connection你确实只是:
<?php
$pdo = NULL;
?>
请注意,在这个问题上还有很多话要说。理想情况下,您将拥有一个处理PDO对象创建的类。您可能需要查看this excellent answer中的Gordon作为开始的地方。