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); */ ?>