首页 > 代码库 > 【PHP&&MySQL详解】

【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‘),‘1649653731@qq.com‘,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=‘2632979128@sohu.com‘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

 

【PHP&&MySQL详解】