请给我编写数据库操作类,包括连接数据库、增删改查数据等方法。
时间: 2024-05-15 09:16:37 浏览: 38
以下是一个简单的PHP数据库操作类,包括连接数据库、增删改查数据等方法:
```php
class DB {
private $host;
private $dbname;
private $username;
private $password;
private $pdo;
public function __construct($host, $dbname, $username, $password) {
$this->host = $host;
$this->dbname = $dbname;
$this->username = $username;
$this->password = $password;
// 连接数据库
$this->pdo = new PDO("mysql:host={$this->host};dbname={$this->dbname}", $this->username, $this->password);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
// 查询数据
public function select($table, $columns = '*', $where = '', $params = array()) {
$query = "SELECT {$columns} FROM {$table}";
if ($where != '') {
$query .= " WHERE {$where}";
}
$stmt = $this->pdo->prepare($query);
$stmt->execute($params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
// 插入数据
public function insert($table, $data) {
$keys = array_keys($data);
$values = array_values($data);
$placeholders = implode(',', array_fill(0, count($values), '?'));
$query = "INSERT INTO {$table} (" . implode(',', $keys) . ") VALUES ({$placeholders})";
$stmt = $this->pdo->prepare($query);
$stmt->execute($values);
return $this->pdo->lastInsertId();
}
// 更新数据
public function update($table, $data, $where = '', $params = array()) {
$set = '';
foreach ($data as $key => $value) {
$set .= "{$key} = ?,";
$params[] = $value;
}
$set = rtrim($set, ',');
$query = "UPDATE {$table} SET {$set}";
if ($where != '') {
$query .= " WHERE {$where}";
}
$stmt = $this->pdo->prepare($query);
$stmt->execute($params);
return $stmt->rowCount();
}
// 删除数据
public function delete($table, $where = '', $params = array()) {
$query = "DELETE FROM {$table}";
if ($where != '') {
$query .= " WHERE {$where}";
}
$stmt = $this->pdo->prepare($query);
$stmt->execute($params);
return $stmt->rowCount();
}
}
```
使用示例:
```php
$db = new DB('localhost', 'test', 'root', '');
// 查询数据
$result = $db->select('users', 'id, name', 'age > ?', array(18));
var_dump($result);
// 插入数据
$id = $db->insert('users', array('name' => '张三', 'age' => 20));
var_dump($id);
// 更新数据
$count = $db->update('users', array('age' => 21), 'id = ?', array($id));
var_dump($count);
// 删除数据
$count = $db->delete('users', 'id = ?', array($id));
var_dump($count);
```