<?php /** * 数据库帮助类 */ class mysqlHelper { protected $config = []; protected $connection; public function __construct($config = '') { $cfg = include('config.php'); $this->config = empty($config) ? $config = [ 'driver' => $cfg['driver'], 'host' => $cfg['host'], 'port' => $cfg['port'], 'dbname' => $cfg['dbname'], 'user' => $cfg['user'], 'pass' => $cfg['pass'], 'options' => [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL ] ] : $config; $this->connection = $this->createConnection(); } private function createConnection() { $config = $this->config; try { $dsn = "{$config['driver']}:host={$config['host']};port={$config['port']};dbname={$config['dbname']}"; $connection = new PDO($dsn, $config['user'], $config['pass'], $config['options']); $connection->exec('set names utf8'); return $connection; } catch (\Exception $e) { die($e->getMessage()); } } public function insert($table, $data = []) { $placeholder = rtrim(implode(", ", array_fill(0, count($data), '?')), ','); $format = "INSERT INTO `{$table}` (%s) VALUES (%s)"; $query = vsprintf($format, [implode(', ', array_keys($data)), $placeholder]); $statement = $this->connection->prepare($query); $statement->execute(array_values($data)); } public function update($query, $data = []) { $statement = $this->connection->prepare($query); // for ($i = 1; count($params) >= $i; $i++) { // $statement->bindValue($i, $params[i]); // } $statement->execute($data); return $statement->rowCount(); } public function fetch($query, $data = []) { $statement = $this->connection->prepare($query); $statement->execute($data); return $statement->fetch(PDO::FETCH_ASSOC); } public function fetchAll($query, $data = []) { $statement = $this->connection->prepare($query); $statement->execute($data); return $statement->fetchAll(PDO::FETCH_ASSOC); } public function getLastInsertId() { return $this->connection->lastInsertId(); } }