【发布时间】:2017-02-28 09:28:24
【问题描述】:
我也是课程和 PDO 的新手。我正在尝试编写一个具有单独函数的类,用于连接到数据库并关闭连接,以便在页面中:
- 打开与
$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);
我的问题是:
- 如何使用上述类实现我想要的?
- 在这种情况下,使用持久连接是否正确?
谢谢
【问题讨论】: