我是新来的类和PDO。我想写具有独立功能的一类用于连接到数据库和关闭,这样的连接,在一个页面中,我可以:检索页面内部的连接:PDO和PHP类
- 打开与
$db->connOpen
- 连接执行所有查询我需要的页面
内关闭在脚本的末尾用
$db->connClose
class database { private $host = ''; private $db_name = ''; private $charset = ''; private $username = ''; private $password = ''; public function setHost($host) { $this->host = $host; } public function setDbName($db_name) { $this->db_name = $db_name; } public function setUser($username, $password) { $this->username = $username; $this->password = $password; } public function connOpen() { try { $dsn = "mysql:host=$this->host;dbname=$this->db_name;charset=$this->charset"; $db = new PDO($dsn, $this->username, $this->password, array(PDO::ATTR_PERSISTENT => true)); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo $e->getMessage(); } } public function connClose() { $db = null; } }
我猜的连接问题在于更多的类语法比PDO,因为要发出一个像下面这样的查询到页面,我需要再次实例化类PDO
,加倍连接到数据库。
$stmt = $dbo->prepare('SELECT * FROM products WHERE id=:id');
$stmt->execute(array(':id' => $id));
$res = $stmt->fetchAll(PDO::FETCH_ASSOC);
我的问题是:
- 如何能实现我想用一个类像上面的是什么?
- 这是正确的,在这种情况下,使用持续连接?
感谢
这里的问题在于,你的类本质上是无用的。不要为了它而编写类。写一个只能做一些有用的课程。 –