zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    07周总结
    06周总结
    05周总结
    04周总结
    03周总结
    02周总结
    python数据特征预处理
    LeetCode Hard: 23. Merge k Sorted Lists
    LeetCode Hard: 4. Median of Two Sorted Arrays
    LeetCode Medium: 49. Group Anagrams
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3969785.html
Copyright © 2011-2022 走看看