PHP数据库操作类

使用php语言开发一个类似数据库操作的文件表类,使用文件记录数据,实现增删改查 使用php语言开发一个类似数据库操作的文件表类,使用文件记录数据,实现增删改查,方便一键部署应用而不需要考虑数据库的问题 阅读详情

制作一个PHP数据库操作类。还缺一些东西,如:写入日志、持久性连接处理等,以后慢慢再完善。


1、配置文件conn.ini.php

<?php
//数据库配置文件
$host = "127.0.0.1";
$dbUser = "root";
$dbPassword = "root";
$db = "phpstu";
$encode = "utf8"
?>

2、数据库操作类文件Mysql.class.php

<?php
class MySql {

	private $conn = "";

	public function __construct() {
		return $this->connect();
	}

	//连接数据库、设置编码
	public function connect() {
		require_once ("conn.ini.php");
		$this->conn = @ mysql_connect($host, $dbUser, $dbPassword);
		if (!$this->conn)
			$this->error_msg("数据库服务器连接失败!");
		if (!@ mysql_select_db($db))
			$this->error_msg("数据库连接失败!");
		mysql_set_charset($encode);
	}

	//执行非查询SQL语句
	public function excute($sql) {
		$result = @ mysql_query($sql);
		if (!$result)
			$this->error_msg("请检查SQL语句!");
		return $result;
	}

	//新增
	public function add($table, $dataArr) {
		if (!is_array($dataArr) || count($dataArr) == 0) {
			$this->error_msg("插入数据为空!请检查!");
			return false;
		}
		$fields = "";
		$values = "";
		//$fields = implode(",", array_keys($dataArr));
		//$values = implode(",", array_values($dataArr));    //使用这种方法产生的字符串,不带单引号,执行SQL语句时出错。
		while (list ($key, $value) = each($dataArr)) {
			$fields .= "`$key`,";
			$values .= "'$value',";
		}
		$fields = substr($fields, 0, -1);
		$values = substr($values, 0, -1);
		$sql = "insert into $table ($fields) values ($values)";
		if (!$this->excute($sql))
			return false;
		return true;
	}

	//更新全部,慎重调用!
	public function updateAll($table, $dataArr) {
		if (!is_array($dataArr) || count($dataArr) == 0) {
			$this->error_msg("更新数据为空!请检查!");
			return false;
		}
		$values = "";
		while (list ($key, $value) = each($dataArr))
			$values .= "`$key`='$value',";
		$values = substr($values, 0, -1);
		$sql = "update $table set $values";
		echo "$sql";
		if (!$this->excute($sql))
			return false;
		return true;
	}

	//根据条件更新
	public function update($table, $dataArr, $where = "") {
		if (empty ($where)) {
			$this->error_msg("更新条件不能为空!");
			return false;
		}
		if (!is_array($dataArr) || count($dataArr) == 0) {
			$this->error_msg("更新数据为空!请检查!");
			return false;
		}
		$values = "";
		while (list ($key, $value) = each($dataArr))
			$values .= "$key='$value',";
		$values = substr($values, 0, -1);
		$sql = "update $table set $values where $where";
		if (!$this->excute($sql))
			return false;
		return true;
	}

	//删除全部
	public function delAll($table) {
		$sql = "delete from $table";
		if (!$this->excute($sql))
			return false;
		return true;
	}

	//根据条件删除
	public function del($table, $where = "") {
		if (empty ($where)) {
			$this->error_msg("删除条件不能为空!");
			return false;
		}
		$sql = "delete from $table where $where";
		if (!$this->excute($sql))
			return false;
		return true;
	}

	//查询,获取符合条件的全部记录
	//$result_type可选值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH
	public function getAll($sql, $result_type = MYSQL_ASSOC) {
		$rows = array ();
		$result = @ mysql_query($sql);
		if (!$result)
			$this->erro_msg("查询失败,请检查SQL语句!");
		while ($row = mysql_fetch_array($result, $result_type)) {
			$rows[] = $row;
		}
		return $rows;
	}

	//查询,获取一条记录
	//$result_type可选值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH
	public function getOne($sql, $result_type = MYSQL_ASSOC) {
		$result = @ mysql_query($sql);
		if (!$result)
			$this->erro_msg("查询失败,请检查SQL语句!");
		$row = mysql_fetch_array($result, $result_type);
		return $row;
	}

	//获取新插入的ID
	public function getInsertId() {
		//$id = mysql_insert_id();				//这个方法有获取不准确的可能,不建议使用,所以注释掉了。
		$row = $this->getOne("select LAST_INSERT_ID()", MYSQL_NUM);
		return $row[0];
	}

	//获取记录条数
	public function getRecordNum($sql) {
		$result = @ mysql_query($sql);
		if (!$result)
			$this->erro_msg("查询失败,请检查SQL语句!");
		return mysql_num_rows($result);
	}

	//获取执行SQL语句影响的行数
	//关于这个方法还有一些疑问的地方,比如:官方手册中说此方法只对非查询语句起作用,但我在测试的时候发现查询语句也可以。以后有空再研究吧!
	public function getAffectedRows() {
		return mysql_affected_rows();
	}

	//错误提示信息
	public function error_msg($msg = "") {
		$msg .= "<br />" . mysql_error();
		$msg = "<div style='color=\"red\"'>" . $msg . "</div>";
		die($msg);
	}

	//释放资源,点位,待研究
	public function freeResult() {

	}

	//关闭数据库连接
	//对于永久性连接,需要手动关闭,具体的知识还需要花时间研究,先放个空方法在这里占位。
	public function close() {

	}

	//析构函数
	public function __destruct() {

	}
}
?>


MySQL数据库操作类(PHP实现,支持连贯操作) 使用过ThinkPHP框架的同学可能会对于其中数据库模型操作特别有好感,ThinkPHP提供了数据库操作的简单的操作,对于连接数据库,数据库的增删改查等数据操作都非常的nice,同时支持连贯操作,对于那些不习惯写sql语句的同学真是大大的便利。(注:sql还是很重要的,不要因为用了框架就把原先的忘了)。 而在笔者使用php操作redis实现后台任务的过程中,也想要借助这种便利,但无奈redis操作 阅读详情

相关推荐

PHP数据库操作之Insert和Update语句构造类

其中,Insert(插入)和Update(更新)语句是两个常用的操作,用于向数据库中插入新的数据或者更新已有的数据。为了更好地组织和管理数据库操作,我们可以创建一个用于构造Insert和Update语句的类。然后,将这两个字符串插入到Insert语句模板中,并返回最终的Insert语句。类,我们可以更轻松地构造Insert和Update语句,并且可以避免手动拼接字符串导致的代码混乱和安全漏洞。的类,该类将包含用于构造Insert和Update语句的方法。的字符串,并将所有这样的字符串用逗号分隔。

DsJustintime的博客 283

php编写数据库表访问操作类

编写一个数据库表访问操作类(Model.php), 使用该类能方便快捷完成表的基本操作。//排序 (id desc) (time)protected $limit = null;1、构造方法(__construct)和析构方法(__destruct);//查询条件,条件并且关系。2、查询(select)

MY0425FYY的博客 243

基于PDO的PHP数据库操作类

这个类提供了一种方便的方式来执行数据库操作,并且通过PDO的抽象层,我们可以轻松地与不同类型的数据库进行交互。你可以根据自己的需要扩展这个类,添加更多的方法来满足不同的数据库操作需求。PDO(PHP Data Objects)是PHP的一个强大的数据库抽象层,它提供了一种统一的接口来与不同类型的数据库进行交互。总结起来,通过基于PDO的数据库操作类,我们可以简化PHP与数据库的交互过程,提高代码的可读性和可维护性。首先,我们需要创建一个名为Database的类,用于封装与数据库的交互操作。

AyxbOle的博客 158

PHP操作数据库

PHP操作数据库

2201_75815645的博客 2083

【ChatGPT实战案例】ChatGPT如何帮助产品经理高效工作?

1. 产品经理主要工作方向, 2. 具体工作中,向ChatGPT提问参考

weixin_62909516的博客 1900

本地大模型部署实战:LM Studio与Ollama的易用性与性能深度评测

本文对两款主流本地大模型部署工具LM Studio和Ollama进行了深度评测。LM Studio凭借图形化界面和内置模型库,为新手提供了开箱即用的便捷体验,并支持OpenAI兼容API,易于生态集成。Ollama则以命令行驱动,轻量高效,凭借其原生API和Modelfile自定义能力,在自动化集成和性能方面表现突出。文章从易用性、模型生态、性能及扩展性多维度对比,帮助用户根据自身技术背景和使用场景做出最佳选择。

weixin_29039773的博客 528

php手写一个pdo数据库操作类(附增删改查实例)

优点可以说是非常多了,常见的优点就是便于维护、复用、高效、安全、易扩展。例如PDO支持的数据库类型是非常多的,与mysqli不同的就是,PDO还支持其他数据库,一套写法多种数据库的匹配,而mysqli仅仅是支持mysql。

TANKING,开源开发者! 699

Xilinx SDK工程编译、链接、调试注意事项

1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...

Autumn_He的博客 1万+

php mysql 数据库操作类_php mysql数据库操作类

分享一个本人一直在使用的一个mysql数据库操作类,比较初级,自己给别人做web网站的时候一直用的这个类,这个也是之前刚开始学习php的时候在网上找到的一个mysql数据库操作类,后来自己改了一些,比如加入了单例类的模式,自我感觉还是非常不错的一个操作mysql数据库的类吧,下面直接贴类代码和类的使用方法。提示:该类已经升级,具体可参考本站文章:MySQL数据库连接类php MySQL数据库操作类...

weixin_34675395的博客 342

飞思卡尔16位单片机(二)——CodeWarrior开发环境搭建及新建、调试工程

一、安装CodeWarrior 飞思卡尔16位单片机的开发环境为CodeWarrior5.1,这个软件安装比较简单,软件的安装文件可以从相应的网站上下载。安装CodeWarrior所需要的电脑的硬件资源也比较宽泛,目前一般的电脑都可以满足这个要求,可以支持win10、win7等操作系统。安装过程按照按照软件的提示一步步操作即可。 二、安装USBDM驱动 USBDM是...

bigmarshal的博客 1万+

ControlCAN.dll开发适配USBCAN_E/2E_U设备

摘要:本文提供了USBCAN_E/2E_U设备的配置指南:1)安装专用驱动;2)获取最新的ControlCAN.dll文件;3)修改VCI调用顺序,新增VCI_SetReference函数设置波特率;4)使用工具计算波特率配置值,并给出了常见波特率对应的代码参考值(如500K对应0x060007)。配置过程强调使用特定工具计算精确的波特率参数,并提供了相关软件下载链接。

weixin_43969033的博客 390

php数据库操作类编写,php封装一个简单的数据库操作类

一 代码class ConnDB{private $local;private $username;private $pwd;private $db;private $connID;private $code;public function __construct($local,$username,$pwd,$connID,$code,$db){$this->local=$local;$th...

weixin_36017951的博客 254

华为OD机试真题2025双机位C卷 Python&JS 实现【卡牌游戏】

小明正在尝试一种新的牌游戏。游戏规则只如下:首先,小明拿到一张写有数字m的牌。 然后,他会拿到另外n张牌,上面分别写有不同的数字,牌排成一排。小明的目标是从这排牌中找到一串连续的牌,这些牌上数字的总和可以被 m整除。你的任务是判断小明是否可以完成这个目标。

MISAYAONE的博客 403

PHP封装数据库操作类

封装数据库操作类: 因为目前所使用的mysqli扩展实现数据库的操作还比较零散,如果想要高效的使用,就必须要进行二次加工 在面向对象编程中,所有操作都应该是由类来实现完成 封装的完整程度是根据业务的需求来定 步骤 1、确定要封装的业务:基于mysqli的数据库底层实现,完成数据库操作的基本诉求 简化初始化操作 实现错误处理 实现增删改查 2、明确封装的类的作用,确定内部实现机制 ...

仗剑天涯,从摘要开始 733

allegro如何设置走线等长

设置走线等长!

weixin_42499230的博客 6933

【全志V821_FoxPi】6-2 IMX219 MIPI摄像头适配

全志V821芯片适配IMX219 MIPI摄像头(2lane)教程,基于FoxPi开发板V1.2 SDK。文章详细介绍了IMX219的技术参数(800万像素、1/4英寸CMOS、支持1080P@30fps输出)及模组接口原理图。重点展示了设备树配置方法,包括PIO引脚定义(TWI0使用PA3/PA4,复位引脚PA2)、TWI0节点设置(100kHz时钟)以及VIND0节点中sensor0的完整配置(I2C地址0x20、MCLK0、RAW格式输出等)。配置过程强调需注意IMX219的器件地址转换(0x10→0

第四维度的博客 2253

mongodb处理库 php_PHP实现的mongoDB数据库操作类完整实例

本文实例讲述了PHP实现的mongoDB数据库操作类。分享给大家供大家参考,具体如下:最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb数据库操作类,特拿出来分享,不尽人意的地方希望大家勿喷。众所周知,mongodb是典型的nosql数据库的代表,受...

weixin_33215370的博客 327

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

支持php5的mysql操作类_支持php4、php5的mysql数据库操作类

支持php4、php5的mysql数据库操作类更新时间:2008年01月10日 20:43:48 作者:支持php4、php5的mysql数据库操作类前端一直使用PHP5,的确使用起来特别的爽,现在为了能在俺的虚拟主机上跑,不得不改成PHP4的。这几个库类我以前发在PHPCHIAN,地址是http://www.phpchina.com/bbs/viewthread.php?tid=5687&a...

weixin_33513255的博客 122

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【PHP的mysql数据库操作类】

这些方法在源码中,都提供了示例和详细的备注,一般的数据库类只提供了增删改查,而这个类提供了更为丰富的功能,能够执行更多复杂的数据库操作。上面只列举了一些主要的方法,当然,它还支持联表,三联表查询,支持分页,提供了多种改数据的方法,支持特殊语法,新值从数据库直接获取。当你开发了一个PHP程序,再也不用去自己手动构造数据库了,使用这个类,你需要的功能,它基本都有了。

铁马冰河 1359

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php数据库操作类实例,php面象对象数据库操作类实例

本文实例讲述了php面象对象数据库操作类。分享给大家供大家参考。具体实现代码如下://此处构造一个数据库操作类,封装所有数据库操作//可以扩展便于后台管理程序的使用Class MySQLDB{var $host;var $user;var $passwd;var $database;var $conn;//利用构造函数实现变量初始化//同时连接数据库操作function MySQLDB($host...

weixin_34332352的博客 156

php数据库操作类及应用,php实现比较全的数据库操作类

本文实例讲述了php实现比较全的数据库操作类。分享给大家供大家参考。具体如下:class database{private $hostname;private $user;private $pass;private $dbname;private $linkflag;private $charset;function __construct(){$this->hostname="localh...

weixin_32190377的博客 238

php数据库操作类

<?php 002 Class DB { 003 004 private $link_id; 005 private $handle; 006 private $is_...

weixin_34082177的博客 361

php建立数据库操作类,PHP数据库操作类的定义及使用

PHP数据库操作类的定义及使用点击数:8894发布时间2017-08-01 22:33:39class myconn{private $host;private $user;private $pwd;private $db;private $ch;public function __construct($host,$user,$pwd,$db,$ch){$this->host=$hos...

weixin_34504277的博客 258

php mysql 数据库操作类_PHP->mysql数据库操作类

var $server = ""; //database server var $user = ""; //database login name var $pass = ""; //database login password var $database = ""; //database name var $pre = ""; //table prefix###################...

weixin_35677144的博客 151
上一篇: PHP面向对象开发(四)
下一篇: PHP验证图片制作
从来_没有过
博客等级 码龄12年 10粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值