批改状态:合格
老师批语:
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 . '条数据';点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号