Correction status:qualified
Teacher's comments:
<?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); ?>
点击 "运行实例" 按钮查看在线实例
以上就是封装的数据库操作类,有兴趣的同学可以自行复制修改