【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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。