如何正确设置PDO连接我不时会看到关于连接数据库的问题。大多数答案不是我做的那样,或者我可能得不到正确的答案。无论如何,我从来没有想过这件事,因为我这样做是为了我自己。但是这里有一个疯狂的想法;也许我做错了,如果是这样的话;我真的很想知道如何使用PHP和PDO正确地连接到MySQL数据库,并使它更容易访问。我就是这样做的:首先,这是我的文件结构(脱去):public_html/* index.php
* initialize/
-- load.initialize.php
-- configure.php
-- sessions.phpindex.php在最上面,我require('initialize/load.initialize.php');.load.initialize.php# site configurations
require('configure.php');# connect to database
require('root/somewhere/connect.php'); // this file is placed outside of public_html for better security.# include classes
foreach (glob('assets/classes/*.class.php') as $class_filename){
include($class_filename);
}# include functions
foreach (glob('assets/functions/*.func.php') as $func_filename){
include($func_filename);
}# handle sessions
require('sessions.php');我知道有一种更好或者更正确的方法来包含类,但是我不记得它是什么。还没来得及调查,但我觉得autoload..差不多吧.。figre.php在这里,我基本上只是覆盖了一些php.ini-属性并为站点执行其他全局配置connect.php我已经将连接放到一个类上,以便其他类可以延展这个.。class connect_pdo{
protected $dbh;
public function __construct()
{
try {
$db_host = ' '; // hostname
$db_name = ' '; // databasename
$db_user = ' '; // username
$user_pw = ' '; // password
$con = new PDO('mysql:host='.$db_host.'; dbname='.$db_name, $db_user, $user_pw);
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$con->exec("SET CHARACTER SET utf8"); // return all sql requests as UTF-8
}
catch (PDOException $err) {
echo "harmless error message if the connection fails";
$err->getMessage() . "<br/>";
file_put_contents('PDOErrors.txt',$err, FILE_APPEND); // write some details to an error-log outside public_html
die(); // terminate connection
}
}在这里,我相信有巨大的改进空间,因为我最近开始学习OOP,并使用PDO而不是MySQL。所以我刚刚学习了几个初学者的教程,并尝试了不同的东西.
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
$_SESSION
存取 $dbh
使用 global $dbh
在您的函数和类中 使用单例注册表,并全局访问该注册表,如下所示: $registry = MyRegistry::getInstance();$dbh = $registry->getDbh();
将数据库处理程序注入需要它的类,如下所示: class MyClass { public function __construct($dbh) { /* ... */ }}
添加回答
举报
0/150
提交
取消