【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 ?>

时间: 2024-08-04 20:59:47

【PHP&&MySQL详解】的相关文章

Linux下彻底卸载mysql详解

Linux下彻底卸载mysql详解 一.使用以下命令查看当前安装mysql情况,查找以前是否装有mysql 1 rpm -qa|grep -i mysql 可以看到如下图的所示: 显示之前安装了: MySQL-client-5.5.25a-1.rhel5 MySQL-server-5.5.25a-1.rhel5 2.停止mysql服务.删除之前安装的mysql 删除命令:rpm -e –nodeps 包名 1 2 rpm -ev MySQL-client-5.5.25a-1.rhel5  rpm

linux上源码安装MySQL详解

最近需要使用MySQL Fabric,这货是MySQL5.6.10之后才出现的utility.手头机器装的是MySQL5.1,所以需要先把旧版MySQL升级成5.6版本.之前没有玩过MySQL,所以这次稍微费了点事.在此,把过程记录下来,希望能给有需求的人提供一点帮助.下面我们就正式开始. 1. 删除老版本MySQL 其实删除老版MySQL是一件很简单的事,但是开始时候由于担心各个包的依赖会导致各种问题,亦步亦趋来得很慢.其实只需要做到这么几步就可以了: 1.1 查看已安装的mysql版本并删除

Ubuntu 16.04下安装MySQL详解

Ubuntu 16.04下安装MySQL详解分别依次输入以下3个命令: sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev 安装成功后可以通过下面的命令测试是否安装成功: sudo netstat -tap | grep mysql 出现如下信息证明安装成功: >>> sudo netstat -tap | grep mysql tcp 0

mysql详解安装

三种安装方式 1 二进制  解压就用 2 YUM/RPM   适用于很多台服务器安装,编译好后,做成RPM包 适用于yum仓库 3 编译安装     自定安装,相当于自己DIY了...5.1安装用make,5.5安装要用cmake 安装二进制详解演示!! 显示系统名.节点名称.操作系统的发行版号.操作系统版本.运行系统的机器 ID 号. [[email protected] ~]# uname -aLinux sky-mysql 2.6.32-573.el6.x86_64 #1 SMP Thu

MySql 详解

MySql数据库基础 MySQL各大存储引擎 MySql常用字符集 MySql支持的数据类型 MySql 枚举和集合 详解 MySql 约束条件 MySql 表操作 MySql 多表关系 MySql 范式 MySql 单表查询 MySql 多表查询 MySQL权限详解 Mysql 三大特性详解 原文地址:https://www.cnblogs.com/TMesh-python/p/11731303.html

Ubuntu安装配置Mysql详解

Ubuntu安装配置Mysql 三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多. 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例. 3. 二进制包安装:安装完成已经自动配置好环境变量,可以直接使用mysql命令 网上安装和二进制

在linux系统下安装mysql详解,以及远程调用连接不上mysql的解决方法。

步骤: 1)查看CentOS自带的mysql 输入 rpm -qa | grep mysql 2)将自带的mysql卸载 3)上传Mysql的安装包到linux 4)安装mysql的依赖(不是必须) yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 yum  update libstdc++-4.4.7-4.el6.x86_64 5)解压Mysql到/usr/local/下的mysql目录(mysql目录需要手动创建)内 cd /us

Windows10下载mysql详解

mysql版本分为企业版(Enterprise)和社区版(Community),其中社区办是通过GPL协议授权的开源软件,可以免费使用,而企业版是需要收费的商业软件. mysql官网 https://www.mysql.com/ ,进去点击 download 下拉滚动到最后,看到 MySQL Community Edition (GPL),点击 进去以后点击download 进入页面,滚动至最下面,看到的版本为8.0.17最新版本.一般下载的版本都为5.5,5.6,点击下图中的 Looking

mysql详解

select 查询类型:单表查询.多表查询,子查询 select * from tb_name; 查询表中所有字段 select field1,field2 from tb_name; 投影,只显示每个实体中的field1.field2 select * from tb_name where 条件: where进行条件查询 例: >select name ,age from students; >select name,age from students where age >10; &

MySQL详解(13)------------事务

一. 什么是事务 事务就是一段sql 语句的批处理,但是这个批处理是一个atom(原子) ,不可分割,要么都执行,要么回滚(rollback)都不执行. 二.为什么出现这种技术 为什么要使用事务这个技术呢? 现在的很多软件都是多用户,多程序,多线程的,对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念.这样很抽象,举个例子: A 给B 要划钱,A 的账户-1000元, B 的账户就要+1000元,这两个update 语句必须作为一个整体来执行,不然A 扣钱了,B 没有加钱这