【PHP&&MySQL详解】

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."&nbsp;&nbsp;";

53             }

54             echo "<br/>";

55         }

56     }

57 ?>
View Code

 

你可能感兴趣的:(mysql)