PHP和MySQL是一对好搭档,PHP中有一个很大的扩展库专门针对对MySQL的操作。当然,作为一个PHP程序员,首先对MySQL的增删查改要非常熟悉才行。

MySQL数据库的连接数大概在6w个左右,6w看上去似乎很大,但是我们要知道,由于对于一个用户来说非常有可能不仅仅只有一个数据库连接,很有可能有很多个,而且对数据库的连接并不能马上就关掉,这就造成了MySQL数据库连接的瓶颈,所以对于底层资源,我们晚使用早关闭,这是数据库编程的第一要义。

对于PHP来说,如果是查询操作要关闭资源和关闭连接两个动作,如果是删除、更新、添加操作只需要关闭连接。

关闭资源:mysql_free_result($resource);这个动作的实际含义就是清空资源(查询到的数据)所占的内存。

关闭连接:mysql_close($connect);这个动作的含义就是关闭和MySQL数据库的链接。

MySQL数据库对于表的crud操作是基础,不再赘述。

其余操作在下面的代码中体现。

interface.php:提供了增删查改的流程控制语句

 <?php
require_once 'Mysql.class.php';
$object=new Mysql("localhost",'root','5a6f38','users');
//查找操作
echo "单独的查询操作后,";
print_all($object); //插入操作
echo "单独的插入数据的操作之后,";
$sql="insert into user1(name,password,email,age) values ('艳荣',md5('sssx'),'1649653731@qq.com',23)";
$res=$object->update_dml($sql);
$sql="select * from user1";
print_all($object); //更新操作
echo "单独的更新刚插入的数据之后,";
$insert_id=mysql_insert_id();//得到刚刚插入表项的id号。
$sql="update user1 set email='2632979128@sohu.com'where id='".mysql_insert_id()."'";
echo $sql."<br/>";
$res=$object->update_dml($sql);
print_all($object); //删除操作
echo "删除刚刚插入的数据之后,";
$sql="delete from user1 where id='".$insert_id."'";
echo $sql."<br/>";
$res=$object->update_dml($sql);
print_all($object); $object->close_connection($object->getconnection());//断开和数据库的连接
function print_all($object)
{
echo "查询数据表结果为:";
$res=$object->search_dql("select * from user1 order by id");
while($row=mysql_fetch_row($res))
{
foreach($row as $key=>$value)
{
echo $value."--";
}
echo "<br/>";
}
$object->close_resource($object->getresource());//关闭资源
echo "<br/><br/>";
}
?>

Mysql.class.php:封装了包括数据库连接、数据库设置默认编码、数据库查询、数据库更新的方法

 <?php
//下面将要进行对mysql扩展库对mysql数据库封装的操作。 class Mysql
{
private $host;
private $name;
private $pw;
private $dbname;
private $conn;
private $res;
public function __construct($host,$name,$pw,$dbname)
{
$this->host=$host;
$this->name=$name;
$this->pw=$pw;
$this->dbname=$dbname;
$this->conn=mysql_connect($this->host,$this->name,$this->pw);
if(!$this->conn)
{
die("数据库连接失败!".mysql_error());
}
mysql_select_db($dbname);//选择数据库
mysql_query("set names utf8");//选择默认的编码方式
}
public function search_dql($sql)
{
$this->res=mysql_query($sql,$this->conn);
echo "<br/>";
if(!$this->res)
{
die("查询失败:".mysql_error());
}
return $this->res;
}
public function update_dml($sql)
{
$res=mysql_query($sql,$this->conn);
if(!$res)
{
die("数据库更新失败!".mysql_error());
}
return $res; }
public function close_resource($res)
{
mysql_free_result($res);
}
public function close_connection($conn)
{
mysql_close($this->conn);
}
public function getresource()
{
return $this->res;
}
public function getconnection()
{
return $this->conn;
}
}
?>

mysql遍历表并打印表格(小数据库,行数不超过50条,以后将会讲分页技术):

 <?php
$conn=mysql_connect("localhost","root","5a6f38");
if(!$conn)
{
die("数据库连接失败!".mysql_error());
}
//echo "数据库连接成功!<br/>";
$flag=mysql_query("set names utf8",$conn);//设置编码方式
//echo $flag;
mysql_select_db("users",$conn) or die("数据库选择失败!".mysql.error());//选择数据库
$sql="select * from user1";
$res=mysql_query($sql,$conn);
//var_dump($res);
//simpleTraverse($res);//简单遍历一下
//simpleTraverseofhead($res) $rows=mysql_affected_rows($conn);//得到行数
$columns=mysql_num_fields($res);//得到列数
echo "<table border=1px>";
echo "<tr>";
for($i=0;$i<$columns;$i++)
{
echo "<th>".mysql_field_name($res,$i)."</th>";
}
echo "</tr>"; //表头信息输出完成,即将打印主体部分。
while($row=mysql_fetch_row($res))
{
echo "<tr>";
foreach($row as $key=>$value)
{
echo "<td>".$value."</td>";
}
echo "</tr>";
}
echo "</table>"; function simpleTraverseofhead($res)//打印表头的方法
{
while($temp=mysql_fetch_field($res))
{
echo $temp->name."<br/>";
}
}
function simpleTraverse($res)//简单遍历表的方法
{
while($row=mysql_fetch_row($res))
{
foreach($row as $key=>$value)
{
echo $value."&nbsp;&nbsp;";
}
echo "<br/>";
}
}
?>

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

  1. MySql详解(四)

    MySql详解(四) MySql的DML操作 插入: 一.方式一 语法: insert into 表名(字段名,...) values(值,...); 特点: 1.要求值的类型和字段的类型要一致或兼容 ...

  2. MySql详解(一)

    MySql详解(一) 作为一名Java开发人员,数据库的地位不用多说了.从大学时期的SqlServer,到现在最流行的MySql和Oracle.前者随着阿里巴巴的去IOE化,在互联网公司中的使用比例是 ...

  3. MySql详解(三)

    MySql详解(三) 导入基础表 具体的SQL文件已经放入百度网盘,连接为:http://pan.baidu.com/s/1hseoVR2,后面的MySql内容都是按照这些基础表展开的. depart ...

  4. MySql详解(五)

    MySql详解(五) MySql库的管理 一.创建库 create database [if not exists] 库名[ character set 字符集名]; 二.修改库 alter data ...

  5. MySql详解(七)

    MySql详解(七) MySql视图 一.含义 mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成. 好处: 1.简化sql语句 2.提高了sql的重用性 3.保 ...

  6. MySql详解(六)

    MySql详解(六) MySql事务 一.含义 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二.特点(ACID) A 原子性:一个事务是不可再分割的整体,要么都执 ...

  7. MySQL详解

    MySQL详解 什么是数据库 # 用来存储数据的仓库 # 数据库可以在硬盘及内存中存储数据 # 数据库与文件存储数据区别 # 数据库本质也是通过文件来存储数据, 数据库的概念就是系统的管理存储数据的文 ...

  8. Linux上安装二进制文件MySQL详解

    前言:昨天晚上搞了很久,终于搞清楚mysql的安装配置了,我真是太low了.当我在云服务器上登进Mysql时,真是高兴哈哈,咱一步一步来,彻底搞懂Mysql的安装配置. 我的安装环境: 阿里云服务器 ...

  9. MySQL详解--锁,事务

    http://www.cnblogs.com/jukan/p/5670950.html http://blog.csdn.net/xifeijian/article/details/20313977 ...

  10. MySQL详解--锁,事务(转)

    锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...

随机推荐

  1. maven项目部分知识

    1.maven项目在pom.xml中用add dependencies加入jar包,搜索不到jar包的解决方案: Window  --> Show View --> Other输入mave ...

  2. 4 Handler相关类——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. Handler相关类概述 处理程序相关类一共有三个,其没有派生继承关系,但是其有友元关系和使用关系 ...

  3. 校赛E题递归形式

    #include<stdio.h> #include<string.h> using namespace std; typedef long long ll; ][]; ,,, ...

  4. Apache Thrift 环境配置

    在 Ubuntu 14.04 下Apache Thrift 的安装方法: 1安装依赖包 sudo apt-get install libboost-dev libboost-test-dev libb ...

  5. java抓取快递信息

    package zeze; import java.io.IOException; import org.jsoup.Connection; import org.jsoup.Jsoup; impor ...

  6. python 端口扫描仪

    思路:使用socket进行连接测试,即客户端连接服务器. 核心代码如下: from socket import * def try_port(ip,port,protocol = SOCK_STREA ...

  7. 用dygraphs图表分析xdebug的trace结果

    2015年12月1日 19:44:23 推荐这一篇用百度的ECharts图表工具 本文用到的js图表库: dygraphs 注: 测试数据量 19108个数据点, 最好将数据的量级调小, 这样渲染会很 ...

  8. Innodb 表空间卸载、迁移、装载

    从MySQL的Innodb特性中我们知道,Inndob的表空间有共享和独享的特点,如果是共享的.则默认会把表空间存放在一个文件中(ibdata1),当开启独享表空间参数Innodb_file_per_ ...

  9. linux 解压缩

    tar f 使用档案名字,这个参数是最后一个参数,后面只能接档案名 c 建立压缩档案 x 解压 t 查看内容 r 向压缩归档文件末尾追加文件 u 更新原压缩包中的文件 z 有gzip属性的 j 有bz ...

  10. 基于NHibernate的开发框架的设计

    上次的 NHibernate的Session管理策略和NHibernateHelper 发布并提供下载,给NHibernate刚入门的同学们带来很多便利. 最近有同学在求NH的通用仓储,正好我最近也设 ...