封装数据库操作函数库(连接数据库,查询,插入,更新,删除)。调用函数即可完成操作
数据库连接函数:connect()函数
connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='root')
实例
<?php /** * PDO数据库操作函数库 */ //1.连接数据库 if (!function_exists('connect')) { /** * 数据库连接 * @param $dbname * @param string $type * @param string $host * @param string $charset * @param string $port */ function connect( $dbname,$type='mysql',$host='127.0.0.1', $charset='utf8', $port=3306,$user='root',$pass='root') { $dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}"; $userName = $user; $password = $pass; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //错误模式 PDO::ATTR_CASE => PDO::CASE_NATURAL, //自然名称 PDO::ATTR_EMULATE_PREPARES => true, //启用模拟功能 PDO::ATTR_PERSISTENT => true, //启用持久性连接 ]; try{ //实例化PDO类,创建PDO对象 $pdo = new PDO($dsn, $userName, $password, $options); // echo '<h1>连接成功</h1>'; }catch (PDOException $e){ die('连接错误'.$e->getMessage()); } return $pdo; } } $type='mysql'; $host='127.0.0.1'; $dbname = 'php'; $charset='utf8'; $port=3306; $user = 'root'; $pass = 'root'; //1.连接测试 $pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass);
运行实例 »
点击 "运行实例" 按钮查看在线实例
数据库查询函数库封装:find()函数
find($pdo, $table, $fields, $where='') : 传入参数为$pdo连接,表名,查询的字段名,条件。即可返回查询到的结果数组
实例
//1.查询单条语句 <?php if(!function_exists('find')){ /** * @param $pdo * @param $table * @param $fields * @param string $where * @return bool */ function find($pdo, $table, $fields, $where='') { //创建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'.';'; //创建STMT对象 $stmt = $pdo->prepare($sql); if($stmt->execute()){ if($stmt->rowCount()){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetch(); } }else{ return false; } } } //////////////////// $table ='staff'; $fields = ['name', 'age', 'salary']; //$fields = '*'; //$fields = 'name, salary'; $where = 'age < 60'; echo '<pre>'.print_r(find($pdo, $table, $fields, $where), true).'</pre>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.查询多条语句
实例
<php if(!function_exists('findAll')){ function findAll($pdo, $table, $fields, $where='', $order='') { //创建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; } 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; } } } //4.多条查询测试 $table ='staff'; $fields = ['name', 'age', 'salary']; $fields = '*'; $fields = 'name, salary'; $where = 'age < 60'; $order = 'age ASC'; echo '<pre>'.print_r(findAll($pdo, $table, $fields, $where, $order),true).'</pre>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
新增操作:insert()函数
实例
<?php if (!function_exists('insert')) { /** * 新增数据 * @param $pdo * @param $table * @param $data * @return bool */ function insert($pdo, $table, $data=[]) { //创建SQL语句 $sql = "INSERT IGNORE {$table} SET "; foreach (array_keys($data) as $field) { $sql .= $field.'=:'.$field.', '; } //去掉尾部逗号,并添加分号结束 $sql = rtrim(trim($sql),',').';'; //创建PDO预处理对象 $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; } } } $table = 'staff'; $data =[ 'name' => '张飞', 'sex' => '男', 'age' => '23', 'salary' => '5200' ]; insert($pdo, $table, $data);
运行实例 »
点击 "运行实例" 按钮查看在线实例
更新函数:update();
实例
<?php //3.更新操作 if(!function_exists('update')){ /** * @param $pdo * @param $table * @param array $data */ function update($pdo, $table, $data=[], $where='') { //创建SQL语句 $sql = "UPDATE IGNORE {$table} SET "; foreach(array_keys($data) as $field){ $sql .=$field.' =:'.$field.','; } $sql = rtrim(trim($sql), ','); // die($sql); //添加更新条件 if(!empty($where)){ $sql .= ' WHERE '. $where; }else{ exit('条件不能为空'); } $sql = rtrim(trim($sql), ',').';'; //创建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; } } } //////////////////// $table = 'staff'; $data =[ 'name' => '吕布', 'sex' => '男', 'age' => '73', 'salary' => '5200' ]; $where = 'staff_id=12'; update($pdo, $table, $data, $where);
运行实例 »
点击 "运行实例" 按钮查看在线实例
删除操作:delete()函数
实例
<?php //6.删除操作 if(!function_exists('delete')){ function delete($pdo, $table, $where='') { //创建SQL语句 $sql = "DELETE FROM {$table} "; //添加删除条件 if(!empty($where)){ $sql .= ' WHERE '. $where; }else{ exit('条件不能为空'); } $sql = rtrim(trim($sql), ',').';'; //创建stmt对象 $stmt = $pdo->prepare($sql); //执行删除操作 if($stmt->execute()){ if($stmt->rowCount() > 0){ return true; } }else{ return false; } } } //////////////////// //5.执行删除 $table = 'staff'; $where = 'staff_id = 30'; delete($pdo, $table, $where); //unset($pdo); $pdo = null;
运行实例 »
点击 "运行实例" 按钮查看在线实例