【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等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...
随机推荐
- 9 DelayQueueEntry 延时队列节点类——Live555源码阅读(一)基本组件类
这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...
- C语言的执行
在ANSIC 的任何一种实现中,有两种不同的环境 翻译环境:将源代码转换为可执行的机器代码 执行环境:用于执行代码 这两种环境可以运行于同一个机器上,也可以运行于不同的机器上 例如交叉编译器:在一台机 ...
- TO BE OPEN
我们通常都在一个很狭隘的世界里. 却以为我们有了整个蓝天.
- Extjs PROXY查询params无法传参,改用extraParams
- Intellij Idea 14 生成serialVersionUID的方法
默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...
- 括号配对问题_栈<stack>
问题 A: 括号配对问题 时间限制: 3 Sec 内存限制: 128 MB提交: 3 解决: 2[提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行 ...
- 从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中
1,实现功能:从下拉菜单拖拽一个元素 出来,插入到页面中的app 列表中 并实现app向后移动一个元素的位置: 2.实现思路: 01.遍历下拉菜单,添加拖拽方法,实现位置移动功能: 02.遍历app列 ...
- (转)JAVA AJAX教程第四章—AJAX和MVC的简单结合
这里我们再理解了AJAX后,开始来用实例感受AJAX的力量. 今天我最后要实现的效果,当鼠标放到图片上时会根据,会把数据库库里的数据读出,通过显示框显示出来.这个在很多网上商店都有用到这里效果,我们这 ...
- C#传真传址 结构体
1.传真 传址 namespace 传值_传址 { class Program { //格式1:无参无返 public void LeiJia() { Console.Write("请输入 ...
- 【leetcode】Substring with Concatenation of All Words (hard) ★
You are given a string, S, and a list of words, L, that are all of the same length. Find all startin ...