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. Bloom Filter 概念和原理

    Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素是不是集合中的一个成员.如果检测结果为是,该元素不一定 ...

  2. VRRP虚拟路由器冗余协议

    VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗余协议)是一种容错协议.通常,一个网络内的所有主机都设置一条缺省路由,这样,主机发出的目的地址不在本网段的报文将被通 ...

  3. [k]自定义上传文件按钮样式

    <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title> ...

  4. SQL查询表中的有那些索引

    方法1. 使用系统表   -- 查询一个表中的索引及索引列 USE AdventureWorks2008 GO SELECT indexname = a.name , tablename = c. n ...

  5. POJ 2676

    http://poj.org/problem?id=2676 深搜的题目. 题意呢就是一个数独的游戏,应该都知道规则. 思路:我的思路很简单,就是用数组来判断某个数字是否可以使用,而每一个数字都由三个 ...

  6. Windows下用python编写简单GUI程序的方法

    Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,显示简单的windows窗口代码如下: python_gui.py #!C:\Python27\python.exe ...

  7. 4. javacript高级程序设计-变量、作用域和内存问题

    1.1 基本类型和引用类型的值 变量包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,引用类型值可以由多个值构成的对象 1.1.1 动态的属性 针对引用对象的值,可以为其 ...

  8. [转]Android How to Download and Make Volley.jar

    原文来自:http://tips.androidhive.info/2015/08/android-how-to-download-and-make-volley-jar/   1 Comment . ...

  9. 屏幕截图、录像FastStone Capture

    作为一款极其优秀好用的屏幕截图软件,FastStone Capture 具有体积小巧.功能强大.操作简便等优点,其方便的浮动工具条和便捷的快捷键堪称完美结合,截图后的图片编辑与保存选项也特别丰富和方便 ...

  10. CSS3实现圆角效果

    利用border-radius属性可以给元素div,input元素等添加圆角效果 后跟 值为这个圆角的半径,即数值越大效果越明显 -webkit-border-top/bottom-left/righ ...