PHP PDO MySQL 数据库操作工具类 - 增删改查示例
以下是一个使用PHP的PDO库来连接MySQL数据库并实现增删改查的简单工具类示例:
class Database {
private $host;
private $db_name;
private $username;
private $password;
private $conn;
public function __construct($host, $db_name, $username, $password) {
$this->host = $host;
$this->db_name = $db_name;
$this->username = $username;
$this->password = $password;
}
private function connect() {
try {
$this->conn = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
public function query($sql, $params = []) {
$this->connect();
try {
$stmt = $this->conn->prepare($sql);
$stmt->execute($params);
return $stmt;
} catch(PDOException $e) {
echo 'Query failed: ' . $e->getMessage();
}
}
public function insert($table, $data) {
$columns = implode(', ', array_keys($data));
$placeholders = ':' . implode(', :', array_keys($data));
$sql = 'INSERT INTO ' . $table . ' (' . $columns . ') VALUES (' . $placeholders . ')';
$this->query($sql, $data);
}
public function update($table, $data, $where) {
$set = '';
foreach ($data as $key => $value) {
$set .= $key . ' = :' . $key . ', ';
}
$set = rtrim($set, ', ');
$sql = 'UPDATE ' . $table . ' SET ' . $set . ' WHERE ' . $where;
$this->query($sql, $data);
}
public function delete($table, $where) {
$sql = 'DELETE FROM ' . $table . ' WHERE ' . $where;
$this->query($sql);
}
public function select($table, $columns = '*', $where = '', $params = []) {
$sql = 'SELECT ' . $columns . ' FROM ' . $table;
if (!empty($where)) {
$sql .= ' WHERE ' . $where;
}
$stmt = $this->query($sql, $params);
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
使用示例:
// 实例化数据库连接
$db = new Database('localhost', 'your_db_name', 'your_username', 'your_password');
// 插入数据
$data = [
'name' => 'John',
'age' => 30,
'email' => 'john@example.com'
];
$db->insert('users', $data);
// 更新数据
$data = [
'age' => 35,
'email' => 'updated@example.com'
];
$where = 'id = 1';
$db->update('users', $data, $where);
// 删除数据
$where = 'id = 1';
$db->delete('users', $where);
// 查询数据
$users = $db->select('users', '*', 'age > :age', ['age' => 25]);
foreach ($users as $user) {
echo $user['name'] . '<br>';
}
请注意,上述示例仅提供了一个基本的数据库工具类,并且没有包含错误处理和安全性验证。在实际使用中,请根据具体需求进一步完善和优化代码,确保安全性和可靠性。
原文地址: https://www.cveoy.top/t/topic/Fzz 著作权归作者所有。请勿转载和采集!