【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:提供了增删查改的流程控制语句
<?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." ";
}
echo "<br/>";
}
}
?>
【PHP&&MySQL详解】的更多相关文章
- MySql详解(四)
MySql详解(四) MySql的DML操作 插入: 一.方式一 语法: insert into 表名(字段名,...) values(值,...); 特点: 1.要求值的类型和字段的类型要一致或兼容 ...
- MySql详解(一)
MySql详解(一) 作为一名Java开发人员,数据库的地位不用多说了.从大学时期的SqlServer,到现在最流行的MySql和Oracle.前者随着阿里巴巴的去IOE化,在互联网公司中的使用比例是 ...
- MySql详解(三)
MySql详解(三) 导入基础表 具体的SQL文件已经放入百度网盘,连接为:http://pan.baidu.com/s/1hseoVR2,后面的MySql内容都是按照这些基础表展开的. depart ...
- MySql详解(五)
MySql详解(五) MySql库的管理 一.创建库 create database [if not exists] 库名[ character set 字符集名]; 二.修改库 alter data ...
- MySql详解(七)
MySql详解(七) MySql视图 一.含义 mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成. 好处: 1.简化sql语句 2.提高了sql的重用性 3.保 ...
- MySql详解(六)
MySql详解(六) MySql事务 一.含义 事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行 二.特点(ACID) A 原子性:一个事务是不可再分割的整体,要么都执 ...
- MySQL详解
MySQL详解 什么是数据库 # 用来存储数据的仓库 # 数据库可以在硬盘及内存中存储数据 # 数据库与文件存储数据区别 # 数据库本质也是通过文件来存储数据, 数据库的概念就是系统的管理存储数据的文 ...
- Linux上安装二进制文件MySQL详解
前言:昨天晚上搞了很久,终于搞清楚mysql的安装配置了,我真是太low了.当我在云服务器上登进Mysql时,真是高兴哈哈,咱一步一步来,彻底搞懂Mysql的安装配置. 我的安装环境: 阿里云服务器 ...
- MySQL详解--锁,事务
http://www.cnblogs.com/jukan/p/5670950.html http://blog.csdn.net/xifeijian/article/details/20313977 ...
- MySQL详解--锁,事务(转)
锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...
随机推荐
- 30秒攻破任意密码保护的PC:深入了解5美元黑客神器PoisonTap
近日,著名硬件黑客Samy Kamkar利用5美元设备打造的黑客工具PoisonTap,只需30秒,就可以攻破设置有任意密码的电脑系统,并实现长期后门安装.PoisonTap不是暴力破解密码,而是绕过 ...
- 给dos命令“.bat”文件换图标
最近客户有个需求:给企业建立一个FTP服务器,并且给不同的部门分配不同的目录和管理权限. 这个好实现!直接安装serv-u,进行一番设置,搞定! 不过客户嫌登陆FTP操作麻烦,输入ip,输入账号什么的 ...
- fzu2172 字符串dp
F - 巡了南山我巡北山 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- Python自动化之sqlalchemy复合外键
复合外键用法 metadata = MetaData(engine) classedu = Table('classedu', metadata, # Column('qq', BigInteger, ...
- class.equals
public boolean equals(Object obj) 1.自身和自身应该是equals的. X.equals(x) return ture2.如果A等于B, 那么B也就等于A . X.e ...
- Droid4x设置代理抓包
Droid4x也是基于virtualbox+x86架构的 代理设置 设置->WIFI->鼠标按住WiredSSID选项不放->修改网络->显示高级选项->代理-> ...
- 图解SSL/TLS协议(HTTPS的安全层)
http://blog.csdn.net/wallezhe/article/details/50977337 图解SSL/TLS协议 作者: 阮一峰 日期: 2014年9月20日 本周,Clo ...
- WinForm开发框架--动态读取DLL模式
1\ WinForm开发框架--动态读取DLL模式 http://www.2cto.com/kf/201306/217199.html 2\ 广州爱奇迪 http://www.iqidi. ...
- pip 安装命令
pip官网文档 https://pip.pypa.io/en/latest/reference/pip.html 若没有将c:\Python27\Scripts加入到path环境变量,可以在c:\Py ...
- linux grep 查找字符串
2015年8月27日 12:04:58 在当前文件夹查找 public function abc() grep -re 'public function abc\b' . // 可以不加e, 适合函数 ...