<?php
/**
*@desc: 数据库操作辅助文件,包括sql语句的构造、增删修查函数
*@author:JiaYusheng
*@time:01.10.2011
*/
include_once("inc/auth.php"); // 如需登录验证则包含,未登录将退出
include_once("inc/utility_all.php"); // 如需要使用公用函数
/**
*@desc: 查询表中的所有记录
*@param: 表名
*@return: 包含查询结果的记录数组
*/
function queryAll($table)
{
$sql = "select * from ".$table;
global $connection;
$result = exequery($connection,$sql);
$rows = array();
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
return $rows;
}
/**
*@desc:依据$cloumns条件查询表$table
*@param: 表名,条件字段与值构成的数组,开始记录ID,每页显示记录数
*@return:查询所得的记录构成的数组
*/
function queryByPaging($table,$cloumns,$firstcount,$displaypg)
{
global $connection;
$sql = "select * from ".$table;
$sql .= getConditionClause($cloumns);
$sql .= " limit $firstcount,$displaypg";
$rows = array();
$result = exequery($connection,$sql);
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
// echo $sql;
return $rows;
}
/**
*@desc:根据sql进行查询,并将查询结果用二维数组返回
*@param: sql
*@return:查询所得的记录构成的数组
*/
function query($sql)
{
global $connection;
$rows = array();
$result = exequery($connection,$sql);
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
return $rows;
}
/*
*eg:
$sql="select * from $rtable where sid=$sid order by rid desc limit $firstcount,$displaypg";
$rows = query($sql);
*/
/**
*@desc:依据$cloumns条件查询表$table
*@param: 表名,条件字段与值构成的数组
*@return:查询所得的记录构成的数组
*/
function queryAllByCondtion($table,$cloumns)
{
$rows = array();
global $connection;
$sql = "select * from ".$table;
$sql .= getConditionClause($cloumns);
$rows = array();
$result = exequery($connection,$sql);
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
//echo $sql;
return $rows;
}
/*
*eg:
$table = "xl_teacherinfo";
$cloumns = array(
// "teacherID" => "s201025006",
// "username" => "jinyong",
// "alias" => "xiaojin",
"gender" => "1",
// "role" => "4"
);
$rows = queryAllByCondtion($table,$cloumns);
foreach($rows as $row)
{
echo "username: ".$row['username']."<br>";
echo "teacherID: ".$row['teacherID']."<br>";
}
*/
/**
*@desc:查询表的某个字段
*@param:表名、字段名
*@return:包含查询结果的数组
*/
function queryCloumns($table,$arrCloumns,$arrCondition)
{
$sql = getColumns($arrCloumns);
$sql .= " from ".$table;
$sql .= getConditionClause($arrCondition);
$rows = array();
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_num_rows($result);
//将结果保存到数组$rows中
$rows = array();
$result = exequery($connection,$sql);
while($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
// echo $sql;
return $rows;
}
/*
*eg:
$table = "xl_teacherinfo";
$arrCondition= array(
"role" => 4,
"gender" => 1
);
$arrCloumns = array(
"teacherID",
"teachername",
"username"
);
echo queryCloumns($table,$arrCloumns,$arrCondition);
*/
/**
*@desc: 向表table的columns字段中插入值values
*@param: 表名,要插入记录的字段,字段值构成的数组
*@return: 包含查询结果的数组
*/
function insert($table,$cloumns)
{
$count = 0;
$sql = "insert into ".$table."(";
foreach($cloumns as $key => $value)
{
if(0==$count)
$sql .= $key;
else
$sql .= ",".$key;
$count++;
}
$sql .=") values(";
$count = 0;
foreach($cloumns as $key => $value)
{
if(0==$count)
{
if(is_string($value))
{
$sql .= "'".$value."'";
}
else
$sql .=$value;
}
else
{
if(is_string($value))
$sql .= ",'".$value."'";
else
$sql .= ",".$value;
}
$count++;
}
$sql .= ") ";
//echo $sql;//test@@@@
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_affected_rows();
return $num_rows;
}
/*
*eg
$table = "xl_dict_role";
$cloumns = array(
"name" => "jys",
"serial" =>99
);
echo insert($table,$cloumns);
*/
/**
*@desc: 向表table的columns字段中插入值values
*@param: 表名,要插入记录的字段数组,字段值数组
*@return: 包含查询结果的数组
*/
function insertCV($table,$cloumns,$values)
{
$count = 0;
//update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
$sql = "insert into ".$table."(";
foreach($cloumns as $item)
{
if(0==$count)
$sql .= $item;
else
$sql .= ",".$item;
$count++;
}
$sql .=") values(";
$count = 0;
foreach($values as $item)
{
if(0==$count)
{
if(is_string($item))
{
$sql .= "'".$item."'";
}
else
$sql .=$item;
}
else
{
if(is_string($item))
$sql .= ",'".$item."'";
else
$sql .= ",".$item;
}
$count++;
}
$sql .= ") ";
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_affected_rows();
return $num_rows;
}
/*
*eg $table = "xl_dict_role";
$cloumns = array("name","serial");
$values = array("xinlilaoshi",10);
echo insertCV($table,$cloumns,$values);
*/
/**
*@desc: 删除table中cloumn字段为value的记录
*@param: 表名,字段,字段值
*@return: 影响的记录数目
*/
function deleteByCloumn($table,$condCloumns)
{
$sql = "delete from ".$table;
//"where ".$cloumn."='".$value."'";
$sql .= getConditionClause($condCloumns);
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_affected_rows();
return $num_rows;
}
/*
*eg
$delID = "7";
$table = "xl_teacherinfo";
$cloumns = array("tid"=>$delID);
echo deleteByCloumn($table,$cloumns);
*/
/**
*@desc: 修改table中condCloumn字段为condValue的记录,
*将cloumns字段修改为值values
*@param: 表名,被修改字段,被修改字段值,条件字段与条件字段值构造的数组
*@return: 影响的记录数目
*/
function update($table,$cloumns,$condCloumns)
{
$count = 0;
//update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
$sql = "update ".$table." set ";
foreach($cloumns as $key => $value)
{
if(0==$count)
{
if(is_string($value))
$sql .= $key."='".$value."'";
else
$sql .= $key."=".$value;
}
else
{
if(is_string($value))
$sql .= ",".$key."='".$value."'";
else
$sql .= ",".$key."=".$value;
}
$count++;
}
$sql .= getConditionClause($condCloumns);
//echo "<br>update sql: ".$sql."<br>";
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_affected_rows();
return $num_rows;
}
/*
*eg
$table = "xl_dict_role";
$cloumns = array("name"=>"心理",
"serial"=>"88");
$condCloumns = array("id"=>11);
echo update($table,$cloumns,$condCloumns);
*/
/*
function update($table,$cloumns,$values,$condCloumns)
{
$count = 0;
//update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
$sql = "update ".$table;
$sql .= getConditionClause($condCloumns);
global $connection;
$result = exequery($connection,$sql);
$num_rows = mysql_num_rows($result);
return $num_rows;
}
*/
/*
*eg
$table = "xl_dict_role";
$cloumns = array("name","serial");
$values = array("xinlilaoshi",10);
$condCloumns = array("id"=>1);
echo update($table,$cloumns,$values,$condCloumns);
*/
/**
*@desc: 构造select 语句的被选择字段语句
*@param: 被选择字段的数组
*@return: "select clo1, clo2"
*/
function getColumns($arrCloumns)
{
$count = 0;
$sql = "select ";
foreach($arrCloumns as $item)
{
if(0==$count)
{
$sql .=$item;
}
else
{
$sql .=", ".$item;
}
$count++;
}
return $sql;
}
/*
*eg:
*
$arr = array('leo','jia');
//echo getColumns($arr);
*/
/**
*@desc:根据数组queryItems构造SQL语句中的AND条件子句
*@param:条件字段的数组
*@return:sql语句的条件语句
*/
function getConditionClause($queryItems)
{
$count = 0;
$where = "";
//根据数组,循环生成条件子句
foreach($queryItems as $key => $value)
{
if ($count == 0)
$where = " where ";
else
$where .= " and ";
//根据查询列的数据类型,决定是否加单引号
if(is_numeric($value))
{
$where .= $key."=".$value;
}
else if(!is_numeric($value))
{
$where .= $key." Like '%".$value."%'";
}
$count++;
}
return $where;
}
/*
*eg:
$arr1 = array("id" => 1);
echo getConditionClause($arr1);
*/
/**
*@desc:利用包含条件字段的数组构造条件子句
*@param:包含条件字段的数组,与还是或查询,取值={"and","or"}
*@return:条件子句
*/
function getConditionClauseByType($queryItems,$type)
{
$count = 0;
$where = "";
foreach($queryItems as $key => $value)
{
if ($count == 0)
$where = " where ";
else
$where .= " ".$type." ";
//根据查询列的数据类型,决定是否加单引号
if(is_numeric($value))
{
$where .= $key."=".$value;
}
else if(!is_numeric($value))
{
$where .= $key." Like '%".$value."%'";
}
$count++;
}
return $where;
}
?>相关推荐
数据库操作API封装
数据库操作库(mysql,redis、memcache API 封装可直接调用)
封装数据库的两种方式
实现C++访问Mysql数据库
数据库封装
对Android数据库的封装,简化了各种操作,值得学习
SQLite数据库简单封装和使用
【代码】SQLite数据库简单封装和使用。
数据库的封装操作
数据库的封装操作实例的源代码 博文链接:https://ohgrateboy.iteye.com/blog/99076
具身智能四大技术路线:VLA、大小脑、世界模型与强化学习
具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技
(原创)数据库的使用以及简单的工具类封装
安卓中数据库的使用是很常见的,今天在介绍的基础上,去做一个简单的封装。 把数据库的表作为一个类,同时封装一个工具类,用来操作数据库的这个表。 实现基础的增删改查功能。
ArcGIS新手必看:用Landsat 8数据计算植被覆盖度的完整流程(附DEM裁剪技巧)
本文为ArcGIS新手提供了使用Landsat 8数据计算植被覆盖度的完整流程指南。详细讲解了从数据预处理、NDVI计算到基于像元二分模型反演植被覆盖度的核心步骤,并重点分享了利用DEM进行精确裁剪的实用技巧,帮助用户高效完成地表信息提取与分析。
Android 项目实践(三)——数据库封装
上一节博客《Android 项目实践(二)——网络连接 》中讲解了网络连接的封装,这一节就要开始数据库封装了。一、为什么封装数据库? 其实封装数据库的原因和封装网络连接的原因是相同的。在这我们就简单的说一下原因:类似于网络连接,数据库创建和操作的方式也是很多了:不同数据库有不同的API,像MySQL,SQLite等,在Xutils框架中也给我们封装了数据库的操作方法。假设在开发应用时,我们使用的是
Intel Mobileye EyeQ Ultra:RISC-V架构的L4自动驾驶芯片解析
RISC-V作为开源指令集架构,凭借其模块化设计和可定制特性,正在重塑高性能计算领域。其精简指令集带来的确定性执行时序,特别适合自动驾驶等实时性要求严苛的场景。在异构计算架构中,RISC-V与专用加速器(如NPU、GPU)的协同设计,能显著提升能效比和算力密度。Mobileye EyeQ Ultra采用12核RISC-V集群,结合176TOPS AI加速器和5nm工艺,实现了L4级自动驾驶所需的实时感知与决策能力。这种架构为车载计算平台提供了可扩展的解决方案,同时降低了系统复杂度和BOM成本。
步进电机原理及梯形加速算法
步进电机重理解与梯形加速算法
【学习前端第五十二课】数据库操作的封装
roomInfoService.js -----继承-----> baseService.js -------继承------> DButils.js。3、stu_info 学生表 ------------------------> stuInfoService.js。2、room_info 房间表 -----------------------> roomInfoService.js。我们在中间添加一层baseService,提供一个基础服务,以达到项目的低耦合状态。
[RK3588-Android12] 深入解析USB Type-C PD充电功能的DTS配置与内核驱动修改
本文深入探讨了在RK3588 Android12平台上禁用USB Type-C PD充电功能的实现方法。通过分析设备树(DTS)配置与内核驱动(TCPM框架)的联动修改,详细解读了如何通过添加`pd-disable`属性及修改`tcpm.c`驱动代码,使Type-C端口绕过PD协议协商,仅工作在传统电源模式,以满足工控等特定场景对供电稳定性和成本控制的需求。
封装Java数据库操作的类
/** Created on 2005-7-27** To change the template for this generated file go to* Window>references>Java>Code Generation>Code and Comments*/package db;import java.sql.Connection;import java.
雷达仿真:FMCW TDMA-MIMO 3D点云获取方法
2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。
中文翻译《ASPICE in practice》之“SUP.8 配置管理”
一般来说,自动化程度越低,负责 CM 的个人就必须花费越多的精力,例如,检查基线的正确性和完整性,或确保在归档系统上正确完成手动版本控制。必须防止未经许可的访问。为了唯一地标识基线,许多 CM 工具提供了一种“标记”基线的机制,即为受影响的 CM 项目的所有版本分配相同的标签,例如“第 3 次交付状态”。此选择必须允许绘制合格的基线(参见 BP5),即确保实际上所有描述特定开发阶段的元素(需求和设计文档、开发环境、变更请求、测试用例、测试文档,也可能是重要的中间工作产品等)都可以在 CM 系统中进行基线。
将数据库操作封装到Javabean
封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作容易带来的资源未释放问题。同时也减少了数据库操作的编码量。但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。2. 结果集总是依赖于它使用的连接(Connection)对象。因此当连接对象在方
MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计
MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计
PHP封装数据库操作类
封装数据库操作类: 因为目前所使用的mysqli扩展实现数据库的操作还比较零散,如果想要高效的使用,就必须要进行二次加工 在面向对象编程中,所有操作都应该是由类来实现完成 封装的完整程度是根据业务的需求来定 步骤 1、确定要封装的业务:基于mysqli的数据库底层实现,完成数据库操作的基本诉求 简化初始化操作 实现错误处理 实现增删改查 2、明确封装的类的作用,确定内部实现机制 ...
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
封装数据库操作类
封装数据库操作类,简单小运用
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
php精辟代码欣赏,数据库操作类,封装所有数据库操作
php数据库操作类,封装所有数据库操作
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
php封装的数据库操作文件夹,PHP中对数据库操作的封装_php
现在我们把其封装在dbfz.inc中,其设计如下:$#@60;?class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表mysql,当为 2代表 SQL Server,为3时为ODBC或其它。var $dbHost; //数据库所在主机域名var $dbUsername; //数据库用户名var $dbPassword; //用户密码http...
php mysql封装_PHP中对数据库操作的封装
现在我们把其封装在dbfz.inc中,其设计如下:$#@60;?class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表MySql,当为 2代表 SQL Server,为3时为ODBC或其它。var $dbHost; //数据库所在主机域名var $dbUsername; //数据库用户名var $dbPassword; //用户密码//设置...
JAVA基础:将数据库操作封装
封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作容易带来的资源未释放问题。同时也减少了数据库操作的编码量。 但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。 1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。 2. 结果集总是依赖于它使用的连接(Connection)
824



被折叠的 条评论
为什么被折叠?



