MySql的dql跟dml操作的封装,成为固定的工具类

MySql的dql和dml操作的封装,成为固定的工具类

在我们使用php去操作MySQl的时候,就像前面讲的SQL语句分为,数据查询语句(dql),数据操作语句(dml),还有数据资源语句等。

但是,我们用的最大的就是前两者,查询是数据库操作的重中之重,而CRUD又是数据库操作必不可少的,不管是学习什么数据库语言都是

如此,所以,我就在日常的学习过程中,针对这两种最为重要的语句,把他们的每一步操作都封装到类里面,这样,有利于代码的重复利用

性,和代码的简洁性,把他们存在于一个外部文件的里面,用的时候就直接引入该文件,非常方面,提高开发效率,不多说了,下面是封装

的具体代码,注:为表达直接清晰,有的数据时定好的数据,如数据库等。


SqlTool.class.php

<?php
	class SqlTool{
		private $conn;
		private $host="localhost";
		private $user="root";
		private $password="toor";
		private $db="test";
		function SqlTool(){
			$this->conn=mysql_connect($this->host,$this->user,$this->password);
			if(!$this->conn){
				die("对不起,连接数据库失败<br/>错误原因:".mysql_error());
			}
			mysql_select_db($this->db,$this->conn);//选择数据库
			mysql_query("set names utf8");
		}
		public function execute_dql($sql){
			//执行数据库dql语句,即查询操作
			$res=mysql_query($sql) or die("查询失败,失败原因".mysql_error());
			return $res;
		}
		//在这里就实现了对CRUD的完全封装
		public function execute_dml($sql){
			$b=mysql_query($sql,$this->conn);
			if(!$b){
				//return 0;	//运行失败
				echo "对不起,操作失败";
			}else{
				if(mysql_affected_rows($this->conn)>0){
					//return 1;	//运行成功
					echo "操作成功!";
				}else{
					//return 2;	//成功,但没有影响行数
					echo "操作成功,但是行数没有受到影响";
				}
			}
			mysql_close($this->conn);//关闭连接
		}	
	}
?>


UseSqlTool.php


<?php
	
	
	require_once "SqlTool.class.php";//引入SqlTool的类文件
	
	/************************dml操作******************************/
	/*//添加数据
	$sql="insert into test1 (name,password,email,age) values('xuning_a',md5('78989'),'xiaohei@qq.com',18)";//Sql语句
	$SqlTool=new SqlTool();
	$res=$SqlTool->execute_dml($sql);
	*/
	//删除数据
	/*
	$sql="delete from test1 where id = 21";//Sql语句
	$SqlTool=new SqlTool();
	$res=$SqlTool->execute_dml($sql);
	*/
	//修改数据
	$sql="update test1 set age=100 where id=9";//Sql语句
	$SqlTool=new SqlTool();
	$res=$SqlTool->execute_dml($sql);
	/**********************dql操作*********************************/
	/*//查询操作
	$sql="select * from test1";
	$SqlTool=new SqlTool();
	$res=$SqlTool->execute_dql($sql);
	//这一串是用户提示:
	echo "用户ID"." "."用户名"."        "."用户密码"."            "."邮箱"."     "."年龄"."   "."<br/>";
	
	while($row=mysql_fetch_row($res)){	//显示所有的用户数据
		foreach($row as $key =>$val){
			echo "$val"."   ";
		}
		echo "<br/>";
	}
	mysql_free_result($res);
	*/
?>


UseSqlTool.php中引入SqlTool.class.php文件,然后把对象实例化,然后我们,要做的就是写出SQL语句,然后调用它,我觉得SQL语句也可以实现封装,但一想,这样的话,代码的自由度就不高了,所以,先对语句分类,然后写出成员方法,而且,要说的是,这里,可以有效的去保护数据,仅仅只有类内的元素才能够去访问数据,不仅仅做到了方便,而且做到了安全。