PDO封装函数库源代码:
实例
<meta charset="UTF-8"> <?php /** * PDO数据库操作函数库 * PDO数据库连接 操作 通用套用公式 */ //连接数据库 if (!function_exists('connect')) { /** * 数据库连接 * @param $dbname * @param string $type * @param string $host * @param string $charset * @param int $port * @param string $user * @param string $pass * @return PDO */ function connect( $dbname, $type='mysql', $host='127.0.0.1', $charset='utf8', $port=3306, $user='root', $pass='uyYYFGZxuVactZc7') { $dsn = "{$type}:host={$host}; dbname={$dbname}; charset={$charset}; port={$port}";//数据源 $userName = 'root';//数据库用户名 $password = 'uyYYFGZxuVactZc7';//数据库密码 //配置连接属性 $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对象 $pdo = new PDO($dsn, $userName, $password, $options); }catch (PDOException $e) { die('Connect ERROR!:'.$e->getMessage()); } return $pdo; } } //新增数据 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; } } } //更新数据 if (!function_exists('update')) { 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('条件不能为空'); } //创建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; } } } //查询单条数据 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'; //去掉尾部逗号,并添加分号结束 $sql = rtrim(trim($sql),',').';'; //创建PDO预处理对象 $stmt = $pdo->prepare($sql); //执行查询操作 if($stmt->execute()){ if($stmt->rowCount()>0){ $stmt->setFetchMode(PDO::FETCH_ASSOC); return $stmt->fetch(); } } else { return false; } } } //查询多条记录 if (!function_exists('select')) { /** * 查询多条记录 * @param $pdo * @param $table * @param $fields * @param string $where * @return bool */ function select($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; } } } //删除数据 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; } } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
PDO封装函数库测试代码:
实例
<?php /** * 数据库操作函数库测试 */ //导入数据库操作函数库 require 'func_pdo.php'; //1.数据库连接测试 $type='mysql'; //默认数据库驱动 $host='127.0.0.1'; //默认主机 $dbname='wd2018'; //数据库名称 $charset='utf8'; //默认编码 $port=3306; //默认端口 $user='root'; //用户名 $pass='uyYYFGZxuVactZc7'; //用户密码 $pdo = connect($dbname,$type,$host,$charset,$port,$user,$pass); //2.新增测试 $table = 'staff'; $data = ['name'=>'西门大官人','sex'=>0, 'age'=>33, 'salary'=>9900]; // insert($pdo,$table,$data);//执行参数 //3.更新测试 $table = 'staff'; $where='staff_id=25'; //查询条件使用字符串直接传入 $data = ['name'=>'西门','sex'=>0, 'age'=>43, 'salary'=>8800]; // update($pdo,$table,$data,$where);//执行参数 //4.单条查询测试 $table = 'staff'; $fields = ['name','age','salary']; // $fields = '*'; //查询所有字段 $fields = 'name,salary'; //查询指定字段 $where = 'age > 80'; echo '<pre>'.print_r(find($pdo, $table, $fields, $where),true).'</pre>'; //5.多条查询测试 $table = 'staff'; $fields = ['name','age','salary']; $fields = '*'; $where = 'age < 40'; // 设定查询条件 $order = 'staff_id asc'; //按字段排序 // echo '<pre>'.print_r(select($pdo, $table, $fields, $where, $order),true).'</pre>'; //6.删除测试 $table = 'staff'; $where = 'staff_id = 25'; $where = ''; //delete($pdo, $table, $where);
运行实例 »
点击 "运行实例" 按钮查看在线实例
MYSQLI封装函数库源代码:
实例
<meta charset="UTF-8"> <?php /** * PRE数据库操作函数库 * PRE数据库连接 操作 通用套用公式 */ //连接数据库 class mysql { private $mysqli; private $result; /** * 数据库连接 * @param $config 配置数组 */ public function connect($config) { $host = $config['host']; //主机地址 $username = $config['username'];//用户名 $password = $config['password'];//密码 $database = $config['database'];//数据库 $port = $config['port']; //端口号 $charset = $config['charset']; //默认字符集 $this->mysqli = new mysqli($host, $username, $password, $database, $port, $charset); if ($this->mysqli->connect_errno) { exit('连接错误'.$mysqli->connect_errno.':'.$mysqli->connect_error); } return $this->mysqli; } //新增数据 /** * 插入数据 * @param $table 数据表 * @param $data 数据数组 * @return mixed 插入ID */ public function insert($table, $data=[]) { //创建SQL语句 用键值遍历 foreach ($data as $key => $value) { $data[$key] = $this->mysqli->real_escape_string($value); } $keys = '`' . implode('`,`', array_keys($data)) . '`'; $values = '\'' . implode("','", array_values($data)) . '\''; $sql = "INSERT INTO {$table}( {$keys} )VALUES( {$values} )"; $this->mysqli->query($sql); return $this->mysqli->insert_id; } //更新数据 /** * @param $table 数据表 * @param $data 数据数组 * @param $where 过滤条件 * @return mixed 受影响记录 */ public function update($table, $data, $where) { foreach ($data as $key => $value) { $data[$key] = $this->mysqli->real_escape_string($value); } $sets = array(); foreach ($data as $key => $value) { $kstr = '`' . $key . '`'; $vstr = '\'' . $value . '\''; array_push($sets, $kstr . '=' . $vstr); } $kav = implode(',', $sets); $sql = "UPDATE {$table} SET {$kav} WHERE {$where}"; $this->mysqli->query($sql); return $this->mysqli->affected_rows; } //查询单条数据 /** * @param $table 数据表 * @param null $field 字段 * @param null $where 条件 * @return mixed 查询结果数目 */ public function select($table, $field = null, $where = null) { $sql = "SELECT * FROM {$table}"; if (!empty($field)) { $field = '`' . implode('`,`', $field) . '`'; $sql = str_replace('*', $field, $sql); } if (!empty($where)) { $sql = $sql . ' WHERE ' . $where; } $this->result = $this->mysqli->query($sql); return $this->result->num_rows; } /** * @return mixed 获取全部结果 */ public function fetchAll() { return $this->result->fetch_all(MYSQLI_ASSOC); } //删除数据 /** * @param $table 数据表 * @param $where 过滤条件 * @return mixed 受影响记录 */ public function delete($table, $where) { $sql = "DELETE FROM {$table} WHERE {$where}"; $this->mysqli->query($sql); return $this->mysqli->affected_rows; } }
运行实例 »
点击 "运行实例" 按钮查看在线实例
MYSQLI封装函数库测试代码:
实例
<?php /** * MYSQLI数据库操作函数库测试 */ //导入数据库操作函数库 require_once 'func_mysqli.php'; //1.数据库连接测试 $config = array( 'type' => 'mysql', 'host' => '127.0.0.1', 'username' => 'root', 'password' => 'uyYYFGZxuVactZc7', 'database' => 'wd2018', 'port' => '3306', 'charset' => 'utf8', ); /* 连接数据库 */ $mysql = new mysql(); $mysql->connect($config); //2.新增测试 $table = 'staff'; $data = ['name'=>'阿柯','sex'=>1, 'age'=>18, 'salary'=>800]; // $id = $mysql->insert($table,$data);//执行参数\ // echo '插入记录的ID为' . $id; //3.更新测试 $table = 'staff'; $where ='staff_id=32'; //查询条件使用字符串直接传入 $data = array('name'=>'神龙教主', 'sex'=>0,'age'=>18,'salary'=>8000,); $rows = $mysql->update($table, $data, $where); // echo '受影响的记录数量为' . $rows . '条'; //4.单条查询测试 $table = 'staff'; $field = array('name', 'age');//查询指定字段 $where = 'age > 80'; $mysql->select($table, $field, $where); // echo '<pre>'.print_r($mysql->fetchAll(),true).'</pre>'; //5.查询全部数据测试 $table = 'staff'; $num = $mysql->select($table); echo '共查询到' . $num . '条数据'; echo '<pre>'.print_r($mysql->fetchAll(),true).'</pre>'; //6.删除测试 $table = 'staff'; $where = 'staff_id = 32'; $rows = $mysql->delete($table, $where); // echo '已删除' . $rows . '条数据';
运行实例 »
点击 "运行实例" 按钮查看在线实例