PHP和MySQL是一对好搭档,PHP中有一个很大的扩展库专门针对对MySQL的操作。当然,作为一个PHP程序员,首先对MySQL的增删查改要非常熟悉才行。
MySQL数据库的连接数大概在6w个左右,6w看上去似乎很大,但是我们要知道,由于对于一个用户来说非常有可能不仅仅只有一个数据库连接,很有可能有很多个,而且对数据库的连接并不能马上就关掉,这就造成了MySQL数据库连接的瓶颈,所以对于底层资源,我们晚使用早关闭,这是数据库编程的第一要义。
对于PHP来说,如果是查询操作要关闭资源和关闭连接两个动作,如果是删除、更新、添加操作只需要关闭连接。
关闭资源:mysql_free_result($resource);这个动作的实际含义就是清空资源(查询到的数据)所占的内存。
关闭连接:mysql_close($connect);这个动作的含义就是关闭和MySQL数据库的链接。
MySQL数据库对于表的crud操作是基础,不再赘述。
其余操作在下面的代码中体现。
interface.php:提供了增删查改的流程控制语句
1 <?php 2 require_once 'Mysql.class.php'; 3 $object=new Mysql("localhost",'root','5a6f38','users'); 4 //查找操作 5 echo "单独的查询操作后,"; 6 print_all($object); 7 8 //插入操作 9 echo "单独的插入数据的操作之后,"; 10 $sql="insert into user1(name,password,email,age) values ('艳荣',md5('sssx'),'[email protected]',23)"; 11 $res=$object->update_dml($sql); 12 $sql="select * from user1"; 13 print_all($object); 14 15 //更新操作 16 echo "单独的更新刚插入的数据之后,"; 17 $insert_id=mysql_insert_id();//得到刚刚插入表项的id号。 18 $sql="update user1 set email='[email protected]'where id='".mysql_insert_id()."'"; 19 echo $sql."<br/>"; 20 $res=$object->update_dml($sql); 21 print_all($object); 22 23 //删除操作 24 echo "删除刚刚插入的数据之后,"; 25 $sql="delete from user1 where id='".$insert_id."'"; 26 echo $sql."<br/>"; 27 $res=$object->update_dml($sql); 28 print_all($object); 29 30 31 32 33 34 $object->close_connection($object->getconnection());//断开和数据库的连接 35 function print_all($object) 36 { 37 echo "查询数据表结果为:"; 38 $res=$object->search_dql("select * from user1 order by id"); 39 while($row=mysql_fetch_row($res)) 40 { 41 foreach($row as $key=>$value) 42 { 43 echo $value."--"; 44 } 45 echo "<br/>"; 46 } 47 $object->close_resource($object->getresource());//关闭资源 48 echo "<br/><br/>"; 49 } 50 ?>
Mysql.class.php:封装了包括数据库连接、数据库设置默认编码、数据库查询、数据库更新的方法
1 <?php 2 //下面将要进行对mysql扩展库对mysql数据库封装的操作。 3 4 class Mysql 5 { 6 private $host; 7 private $name; 8 private $pw; 9 private $dbname; 10 private $conn; 11 private $res; 12 public function __construct($host,$name,$pw,$dbname) 13 { 14 $this->host=$host; 15 $this->name=$name; 16 $this->pw=$pw; 17 $this->dbname=$dbname; 18 $this->conn=mysql_connect($this->host,$this->name,$this->pw); 19 if(!$this->conn) 20 { 21 die("数据库连接失败!".mysql_error()); 22 } 23 mysql_select_db($dbname);//选择数据库 24 mysql_query("set names utf8");//选择默认的编码方式 25 } 26 public function search_dql($sql) 27 { 28 $this->res=mysql_query($sql,$this->conn); 29 echo "<br/>"; 30 if(!$this->res) 31 { 32 die("查询失败:".mysql_error()); 33 } 34 return $this->res; 35 } 36 public function update_dml($sql) 37 { 38 $res=mysql_query($sql,$this->conn); 39 if(!$res) 40 { 41 die("数据库更新失败!".mysql_error()); 42 } 43 return $res; 44 45 } 46 public function close_resource($res) 47 { 48 mysql_free_result($res); 49 } 50 public function close_connection($conn) 51 { 52 mysql_close($this->conn); 53 } 54 public function getresource() 55 { 56 return $this->res; 57 } 58 public function getconnection() 59 { 60 return $this->conn; 61 } 62 } 63 ?>
mysql遍历表并打印表格(小数据库,行数不超过50条,以后将会讲分页技术):
1 <?php 2 $conn=mysql_connect("localhost","root","5a6f38"); 3 if(!$conn) 4 { 5 die("数据库连接失败!".mysql_error()); 6 } 7 //echo "数据库连接成功!<br/>"; 8 $flag=mysql_query("set names utf8",$conn);//设置编码方式 9 //echo $flag; 10 mysql_select_db("users",$conn) or die("数据库选择失败!".mysql.error());//选择数据库 11 $sql="select * from user1"; 12 $res=mysql_query($sql,$conn); 13 //var_dump($res); 14 //simpleTraverse($res);//简单遍历一下 15 //simpleTraverseofhead($res) 16 17 $rows=mysql_affected_rows($conn);//得到行数 18 $columns=mysql_num_fields($res);//得到列数 19 echo "<table border=1px>"; 20 echo "<tr>"; 21 for($i=0;$i<$columns;$i++) 22 { 23 echo "<th>".mysql_field_name($res,$i)."</th>"; 24 } 25 echo "</tr>"; 26 27 //表头信息输出完成,即将打印主体部分。 28 while($row=mysql_fetch_row($res)) 29 { 30 echo "<tr>"; 31 foreach($row as $key=>$value) 32 { 33 echo "<td>".$value."</td>"; 34 } 35 echo "</tr>"; 36 } 37 echo "</table>"; 38 39 function simpleTraverseofhead($res)//打印表头的方法 40 { 41 while($temp=mysql_fetch_field($res)) 42 { 43 echo $temp->name."<br/>"; 44 } 45 } 46 function simpleTraverse($res)//简单遍历表的方法 47 { 48 while($row=mysql_fetch_row($res)) 49 { 50 foreach($row as $key=>$value) 51 { 52 echo $value." "; 53 } 54 echo "<br/>"; 55 } 56 } 57 ?>