class PdoHelper { private $dsn; private $usn; private $pwd; private $options; function __construct($dsn, $usn, $pwd, $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8')) { $this->dsn = $dsn; $this->usn = $usn; $this->pwd = $pwd; $this->options = $options; } public function GetPDOStatement() { return new PDO($this->dsn, $this->usn, $this->pwd, $this->options); } //获得数据集 public function GetData($sql, $parames = array()) { $dbh = $this->GetPDOStatement(); if (count($parames) > 0) { $stmt = $dbh->prepare($sql); $keys = array_keys($parames); foreach ($keys as $key) { $stmt->bindValue($key, $parames[$key]); } $stmt->execute(); return $stmt->fetchAll(); } else { $query = $dbh->query($sql); if ($query) { return $query->fetchAll(); } } return FALSE; } //获得数据行 public function GetRow($sql, $parames = array()) { $dbh = $this->GetPDOStatement(); if (count($parames) > 0) { $stmt = $dbh->prepare($sql); $keys = array_keys($parames); foreach ($keys as $key) { $stmt->bindValue($key, $parames[$key]); } $stmt->execute(); return $stmt->fetch(); } else { $query = $dbh->query($sql); if ($query) { return $query->fetch(); } } return FALSE; } //获得一个值 public function GetValue($sql, $parames = array()) { $dbh = $this->GetPDOStatement(); if (count($parames) > 0) { $stmt = $dbh->prepare($sql); $keys = array_keys($parames); foreach ($keys as $key) { $stmt->bindValue($key, $parames[$key]); } $stmt->execute(); return $stmt->fetchColumn(); } else { $query = $dbh->query($sql); if ($query) { return $query->fetchColumn(); } } return FALSE; } //执行一条查询 public function Execute($sql, $parames = array()) { $dbh = $this->GetPDOStatement(); if (count($parames) > 0) { $stmt = $dbh->prepare($sql); $keys = array_keys($parames); foreach ($keys as $key) { $stmt->bindValue($key, $parames[$key]); } return $stmt->execute(); } else { return $dbh->exec($sql); } } //执行插入 并且返回最后插入的ID public function InsertDataGetLastID($sql, $parames = array()) { $dbh = $this->GetPDOStatement(); if (count($parames) > 0) { $stmt = $dbh->prepare($sql); $keys = array_keys($parames); foreach ($keys as $key) { $stmt->bindValue($key, $parames[$key]); } $stmt->execute(); return $dbh->lastInsertId(); } else { $dbh->exec($sql); return $dbh->lastInsertId(); } } }