批改状态:合格
老师批语:
<?php //pdo数据库连接配置文件 $dbname = 'bz2018'; $type = 'mysql'; $host='127.0.0.1'; $charset = 'utf8'; $port = '3306'; $user= 'root'; $pass = 'root'; $pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass); ?>
点击 "运行实例" 按钮查看在线实例
<?php
//function_exists(function_name) 检测函数是否被定义
if (!function_exists('connect')) {
/医院
* @param $dbname
* @param $type
* @param $host
* @param $charset
* @param $port
* @param $user
* @param $pass
* @return PDO
*/
function connect($dbname, $type, $host, $charset, $port, $user, $pass){
//数据源
$dsn = "{$type}:host={$host};dbname={$dbname};charset={$charset};port={$port}";
//配置连接属性
$options= [
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,//设置错误模式
PDO::ATTR_CASE=>PDO::CASE_NATURAL,//设置数据库字段保持不变
PDO::ATTR_EMULATE_PREPARES=>TRUE,//启用pdo模拟功能
PDO::ATTR_PERSISTENT=>TRUE//启用持久性连接
];
//连接调试代码段
try{
//实例化pdo对象
$pdo = new PDO($dsn,$user,$pass,$options);
// echo '连接成功';
}catch(PDOException $e){
//抛出异常
die('ERROR:'.$e->getMessage());
}
return $pdo;
}
}
//新增数据
if(!function_exists('insert')){
/医院
* @param $pdo
* @param $table
* @param array $data
* @return bool
*/
function insert($pdo, $table, $data=[]){
// 创建sql预处理语句
$sql = "INSERT IGNORE {$table} SET ";
foreach(array_keys($data) as $fileld){
$sql .= $fileld.'=:'.$fileld.', ';
}
//去除sql语句的左右空格 并去除右边的逗号
$sql = rtrim(trim($sql),',').';';
//创建pdo预处理对象
$stmt = $pdo->prepare($sql);
//绑定参数到预处理对象
foreach($data as $fileld => $value){
$stmt->bindValue(":{$fileld}",$value);
}
//执行新增操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
}else{
return false;
}
}
}
//更新数据
if(!function_exists('updata')){
/医院
* @param $pdo
* @param $table
* @param array $data
* @param string $where
* @return bool
*/
function update($pdo, $table, $data=[], $where=''){
// 创建sql语句
$sql = "UPDATE {$table} SET ";
foreach (array_keys($data) as $field) {
$sql .= $field.'=:'. $field.', ';
}
//去掉尾部的逗号并添加分号
$sql = rtrim(trim($sql),', ');
//
// 添加更新条件
if (!empty($where)) {
$sql .= ' WHERE '.$where.';';
} else {
exit('条件不能为空');
}
// 创建stmt对象
$stmt = $pdo->prepare($sql);
//绑定参数到预处理对象中
foreach ($data as $field => $value) {
$stmt->bindValue(":{$field}", $value);
}
//执行更新操作
if ($stmt->execute()) {
if ($stmt->rowCount()>0) {
return true;
}
} else {
return false;
}
};
};
//查询单条数据
if (!function_exists('find')){
// 查询单条数据
function find($pdo,$table,$fields,$where){
// c创建sql语句
$sql = 'SELECT ';
if(is_array($fields)){
foreach($fields as $field){
$sql .= $field.', ';
}
}else{
$sql .=$fields;
}
$sql = rtrim(trim($sql),', ');
$sql .= ' FROM '.$table;
//添加查询条件
if(!empty($where)){
$sql .= " WHERE ".$where;
}
$sql .= ' LIMIT 1';
$sql = rtrim(trim($sql),', ').';';
//创建stmt对象
$stmt = $pdo->prepare($sql);
//执行查询操作
if ($stmt->execute()){
if ($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetch();
}
}else{
return $stmt->error;
}
};
}
//查询多条数据
if (!function_exists('select')){
//查询多条记录
/医院
* @param $pdo
* @param $table
* @param $fields
* @param string $where
* @param string $order
* @return bool
*/
function select($pdo, $table, $fields, $where='', $order=''){
// 创建sql语句
$sql = 'SELECT ';
if (is_array($fields)){
foreach($fields as $field){
$sql .= $fiele.', ';
}
}else{
$sql .=$fields;
}
$sql = rtrim(trim($sql),',');
$sql .=' FROM '.$table;
//添加查询条件
if(!empty($where)) {
$sql .= ' WHERE '. $where;
}
//添加排序条件
if (!empty($order)){
$sql .=' ORDER BY '.$order;
}
//去掉尾部的逗号并添加逗号
$sql = rtrim(trim($sql),' , ').';';
//创建pdo预处理对象
$stmt= $pdo->prepare($sql);
//执行操作
if ($stmt->execute()){
if($stmt->rowCount()>0){
$stmt->setFetchMode(PDO::FETCH_ASSOC);
return $stmt->fetchAll();
}
}else{
return false;
}
};
}
//删除数据
if (!function_exists('delete')) {
/医院
* 删除记录
* @param $pdo
* @param $table
* @param string $where
* @return bool
*/
function delete($pdo,$table, $where='') {
//创建SQL语句
$sql = "DELETE FROM {$table} ";
//添加删除条件
if(!empty($where)) {
$sql .= 'WHERE '. $where;
}else{
exit('条件不能为空');
}
//去掉尾部逗号,并添加分号结束
$sql = rtrim(trim($sql),', ').';';
//创建PDO预处理对象
$stmt = $pdo->prepare($sql);
//执行删除操作
if($stmt->execute()){
if($stmt->rowCount()>0){
return true;
}
} else {
return false;
}
}
}
?>点击 "运行实例" 按钮查看在线实例
<?php require'lib/pdo_function.php'; require'lib/config.php'; //新增测试 $data = ['username'=>'cheshi2','password'=>md5(123456),'coin'=>'2002']; $table = 'loot2017_members'; //insert($pdo,$table,$data); //更新测试 $table = 'loot2017_members'; $data =['password'=>md5(123123),'coin'=>'9000']; //$where = 'uid= 332'; //update($pdo,$table,$data,$where); //单条查询 $table = 'loot2017_members'; $fields = ['username','coin','uid','qq','name','updateTime']; $where = 'uid>300'; echo'<pre>'; // print_r(find($pdo,$table,$fields,$where)); $table = 'loot2017_members'; $fields = ['username','coin','uid']; $fields = '*'; $where = 'coin > 1000'; $order = 'username asc'; //echo '<pre>'.print_r(select($pdo, $table, $fields, $where, $order),true).'</pre>'; $where = 'uid = 333'; $table = 'loot2017_members'; delete($pdo,$table, $where); ?>
点击 "运行实例" 按钮查看在线实例
以上就是封装的数据库操作类,有兴趣的同学可以自行复制修改
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号