//自动加载文件
public static function _autoload($className){
switch ($className){
//自动加载控制器
case substr($className,-3)=='Crl':
$path= CONTROLLER.'/'.$className.'.php';
if(is_file($path)) include $path;
break;
//自动加载基类
case substr($className,-4)=='Base':
$path= KJ_CORE.'/base/'.$className.'.php';
if(is_file($path)) include $path;
break;
default :
break;
}
}
5、基类使用pdo封装增删改查 ModelBase.php
php复制代码
<?php
class ModelBase
{
public $pdo = NULL;
public function __construct(){
$this->_connect();
}
private function _connect(){
$host = DB_HOST;
$db = DB_DATABASE;
$user = DB_USER;
$pass = DB_PWD;
$dsn = "mysql:host=$host;dbname=$db;charset=utf8";
try {
$this->pdo = new PDO($dsn, $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
} catch (PDOException $e) {
die("数据库连接失败: " . $e->getMessage());
}
}
public function insert($table, $data) {
// 准备SQL语句
$fields = implode(', ', array_keys($data));
$values = ':' . implode(', :', array_keys($data));
$sql = "INSERT INTO $table ($fields) VALUES ($values)";
// 绑定参数并执行SQL语句
$stmt = $this->pdo->prepare($sql);
foreach ($data as $key => $value) {
$stmt->bindValue(':' . $key, $value);
}
return $stmt->execute();
}
public function delete($table, $condition, $params = [])
{
$sql = "DELETE FROM $table WHERE $condition";
$stmt = $this->pdo->prepare($sql);
foreach ($params as $key => $value) {
$stmt->bindValue(":$key", $value);
}
$stmt->execute();
return $stmt->rowCount();
}
public function update($table, $data, $condition, $params = [])
{
$sql = "UPDATE $table SET ";
$set = [];
foreach ($data as $key => $value) {
$set[] = "$key = :$key";
}
$sql .= implode(', ', $set);
$sql .= " WHERE $condition";
$stmt = $this->pdo->prepare($sql);
foreach ($data as $key => $value) {
$stmt->bindValue(":$key", $value);
}
foreach ($params as $key => $value) {
$stmt->bindValue($key, $value);
}
$stmt->execute();
return $stmt->rowCount();
}
public function select($table, $condition = '', $params = [])
{
$sql = "SELECT * FROM $table";
if ($condition) {
$sql .= " WHERE $condition";
}
$stmt = $this->pdo->prepare($sql);
foreach ($params as $key => $value) {
$stmt->bindValue($key, $value);
}
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}