mysql工具类整理

本文介绍PHP如何使用mysql扩展库操作MySQL数据库,包括连接数据库、执行SQL语句、处理查询结果等基本步骤。同时展示了如何实现数据的增删改查操作,并提供了一个实用函数,该函数可以根据指定的表名展示表结构及数据。

php有三种方式来操作我们的mysql数据库

① mysql扩展库

② mysqli扩展库

③ pdo 

☞ mysql扩展库和mysql数据库的区别

1.mysql数据库是用于存放数据.

2.mysql数据库的三层结构示意图:


3. mysql扩展库是一堆函数.PHP设计者提供给程序员用于完成对mysql数据库的各种操作(CRUD).

l 编写一个程序,这个程序从user1表中读取数据,并打印在网页中。

1. 环境搭建 

1.1 启用mysql扩展库  

php.ini文件中去配置mysql扩展库

extension=php_mysql.dll

可以通过 <?php phpinfo() ?> 可以查看当前php支持什么扩展库

 

1.2 创建一张用户表,供我们使用

create table user1(

id int primary key auto_increment,

name varchar(32) not null,

password varchar(64) not null,

email varchar(128) not null,

age tinyint unsigned not null

)

预先加入数据

insert into user1 (name,password,email,age) values ('zs',md5('123456'),'zs@sohu.com',30);

insert into user1 (name,password,email,age) values ('ls',md5('123456'),'ls@sohu.com',40);

insert into user1 (name,password,email,age) values ('ww',md5('123456'),'ww@sohu.com',50);

insert into user1 (name,password,email,age) values ('广东',md5('123456'),'shunping@sohu.com',50);

2. 编写php程序完成对用户表的显示

代码

<?php

//mysql扩展库操作mysql数据库步骤如下

//1. 获取连接

$conn=mysql_connect("127.0.0.1","root","root");

if(!$conn){

die("连接失败".mysql_error());

}

//2. 选择数据库

mysql_select_db("test");

//3. 设置操作编码(建议有)!!!

mysql_query(“set names utf8”); //保证我们的php程序是按照utf8码操作.

//4. 发送指令sql (ddl 数据定义语句 , dml(数据操作语言 update insert ,delete) ,dql (select ), dtl 数据事务语句 rollback commit... )

$sql="select * from user1";

//函数

//$res 表示结果集,你可以简单的理解就是 一张表.

$res=mysql_query($sql,$conn);

//var_dump($res); //mysql result 资源类型

//5. 接收返回的结果,并处理.(显示)

// mysql_fecth_row 会依次取出$res结果集的下一行数据,赋值给$row

// $row就是一个数组样式array(5) { [0]=> string(1) "1" [1]=> string(2) "zs" [2]=> string(32) "e10adc3949ba59abbe56e057f20f883e" [3]=> string(11) "zs@sohu.com" [4]=> string(2) "30" } 

mysql_close($conn);

while($row=mysql_fetch_row($res)){

//第一种取法是 同 $row[$i]

//echo "<br/> $row[0]--$row[1]--$row[2]";

//echo "<br/>";

//var_dump($row);

//第二种取法

foreach($row as $key => $val){

echo "--$val";

}

echo "<br/>";

}

//6. 释放资源,关闭连接

mysql_free_result($res);

//这句话可以没有,建议有.

// mysql_close($conn);

?>

细节 :

1. 使用完 $res 结果集后,一定要及时的释放资源.

2. mysql_close() 如果没有的话,系统也会自动的关闭

3. 从$res获取行数据的时候,处理 mysql_fetch_row($res),还有三个方法.

分别是

mysql_fetch_row($res)  ,返回一个索引的数组  (推荐.)

mysql_fetch_assoc($res)  ,返回一个关联数组

mysql_fetch_array($res)  ,返回索引数组和关联数组 (两套)

mysql_fetch_object($res) ,把一行数据,当做一个对象返回.

演示通过mysql扩展库,进行dml操作

代码:

<?php

//演示对user1表进行增,删除,修改的操作

$conn=mysql_connect("localhost","root","root");

if(!$conn){

die("出错了".mysql_error());

}

mysql_select_db("test",$conn) or die(mysql_error());

mysql_query("set names utf8");

//$sql="insert into user1 (name,password,email,age) values('小明',md5('123'),'xiaoming@sohu.com',34)";

//$sql="delete from user1 where id=5";

$sql="update user1 set age=100 where id=6";

//如果是dml操作,则返回bool

$res=mysql_query($sql,$conn);

if(!$res){

die("操作失败".mysql_error());

}

//看看有几条数据

if(mysql_affected_rows($conn)>0){

echo "操作成功";

}else{

echo "没有影响到行数";

}

mysql_close($conn);

?>

从上面的两个文件看出,代码的复用性和可维护性不高,PHP编程中,通常是将对数据库的操作,封装成一个工具类  SqlTool 

请编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页


---------------------------------------------------------------

1.mysql扩展库操作mysql数据库步骤如下

<?php


	//mysql扩展库操作mysql数据库步骤如下

	//1. 获取连接
	
	$conn=mysql_connect("127.0.0.1","root","root");

	if(!$conn){
		die("连接失败".mysql_error());
	}
	
	//2. 选择数据库
	mysql_select_db("test");
	//3. 设置操作编码(建议有)!!!
	
	//4. 发送指令sql (ddl 数据定义语句 , dml(数据操作语言 update insert ,delete) ,dql (select ), dtl 数据事务语句 rollback commit... )

	$sql="select * from user1";
	//函数
	//$res 表示结果集,你可以简单的理解就是 一张表.
	$res=mysql_query($sql,$conn);

	//var_dump($res);
	
	//5. 接收返回的结果,并处理.(显示)
	// mysql_fecth_row 会依次取出$res结果集的下一行数据,赋值给$row
	// $row就是一个数组, 样式array(5) { [0]=> string(1) "1" [1]=> string(2) "zs" [2]=> string(32) "e10adc3949ba59abbe56e057f20f883e" [3]=> string(11) "zs@sohu.com" [4]=> string(2) "30" } 
	
	while($row=mysql_fetch_assoc($res)){
		//第一种取法是 同 $row[$i]
		//echo "<br/> $row[0]--$row[1]--$row[2]";
		//echo "<br/>";
		var_dump($row);
		//第二种取法
	/*	foreach($row as $key => $val){
			echo "--$val";
		}*/
		//echo $row->email;
		//echo $row['id'];
		echo "<br/>";
	}


	//6. 释放资源,关闭连接
	mysql_free_result($res);
	//这句话可以没有,建议有.
	mysql_close();


?>

2.增删改查

<?php

	//演示对user1表进行增,删除,修改的操作

	/*$conn=mysql_connect("localhost","root","root");
	if(!$conn){
		die("出错了".mysql_error());
	}

	mysql_select_db("test",$conn) or die(mysql_error());

	mysql_query("set names utf8");

	//$sql="insert into user1 (name,password,email,age) values('小明',md5('123'),'xiaoming@sohu.com',34)";

	//$sql="delete from user1 where id=5";
	$sql="update user1 set age=100 where id=6";
	//如果是dml操作,则返回bool
	$res=mysql_query($sql,$conn);

	if(!$res){
		die("操作失败".mysql_error());

	}

	//看看有几条数据
	if(mysql_affected_rows($conn)>0){
		echo "操作成功";
	}else{
		echo "没有影响到行数";
	}

	mysql_close($conn);*/

	//完成添加
	require_once "SqlTool.class.php";

//******************************dml****************
	$sql="insert into user1 (name,password,email,age) values('小明',md5('123'),'xiaoming@sohu.com',34)";
	//$sql="drop database hsp";
	$sqlTool=new SqlTool();
	$res=$sqlTool->execute_dml($sql);

	if($res==0){
		echo "失败";
	}else if($res==1){
		echo "成功";
	}else if($res==2){
		echo "没有行数影响";
	}
//****************************dql*******************

	$sql="select * from user1";
	$sqlTool=new SqlTool();
	$res=$sqlTool->execute_dql($sql);
	while($row=mysql_fetch_row($res)){
		foreach($row as $key=>$val){
			echo "--$val";
		}
		echo "<br/>";
	}
	mysql_free_result($res);*/
?>
3.编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页

<?php

	
	//编写一个函数,可以接受一个表名,然后把表的头和记录显示在网页

	function show_tab_info($table_name){
	
		$conn=mysql_connect("localhost","root","root");
		if(!$conn){
			die("连接失败".mysql_error());
		}
		echo "hello";
		mysql_select_db("test",$conn);
		mysql_query("set names utf8");
		//$sql="select * from $table_name";
		$sql="desc $table_name";
		$res=mysql_query($sql,$conn);

		//我要知道总有多少行,和多少列
		$rows=mysql_affected_rows($conn);
		$colums=mysql_num_fields($res);
		echo "$rows=$colums";

		echo "<table border=1><tr>";
		//表头
		for($i=0;$i<$colums;$i++){
			$field_name=mysql_field_name($res,$i);
			echo "<th>$field_name</th>";
		}
		echo "</tr>";

		while($row=mysql_fetch_row($res)){
			echo "<tr>";
			for($i=0;$i<$colums;$i++){
				echo "<td>$row[$i]</td>";
			}
			echo "</tr>";
		}

		echo "</table>";

	/*	while($field_info=mysql_fetch_field($res)){
			echo  "<br/>".$field_info->name;
		}*/
		//var_dump($field_info);
		
	}

	show_tab_info("user1");



?>

<?php

	class SqlTool {
		
		private $conn;
		private $host="localhost";
		private $user="root";
		private $password="root";
		private $db="test";

		function SqlTool(){
			
			$this->conn=mysql_connect($this->host,$this->user,$this->password);
			if(!$this->conn){
				die("连接数据库失败".mysql_error());
			}
			mysql_select_db($this->db,$this->conn);
			mysql_query("set names utf8");
		}

		

		// 完成select
		public  function execute_dql($sql){
		
			$res=mysql_query($sql,$this->conn) or die(mysql_error());
			
			return $res;
			
		}
		//完成 update,delete ,insert
		public  function execute_dml($sql){
		
			$b=mysql_query($sql,$this->conn);
			//echo "添加的id=".mysql_insert_id($this->conn);
			if(!$b){
				return 0;//失败
			}else{
				if(mysql_affected_rows($this->conn)>0){
					return 1;//表示成功
				}else{
					return 2;//表示没有行数影响.
				}
			}
		}
	}

?>



Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值