【PHP&&MySQL详解】
2014-09-13 14:18
260 查看
PHP和MySQL是一对好搭档,PHP中有一个很大的扩展库专门针对对MySQL的操作。当然,作为一个PHP程序员,首先对MySQL的增删查改要非常熟悉才行。
MySQL数据库的连接数大概在6w个左右,6w看上去似乎很大,但是我们要知道,由于对于一个用户来说非常有可能不仅仅只有一个数据库连接,很有可能有很多个,而且对数据库的连接并不能马上就关掉,这就造成了MySQL数据库连接的瓶颈,所以对于底层资源,我们晚使用早关闭,这是数据库编程的第一要义。
对于PHP来说,如果是查询操作要关闭资源和关闭连接两个动作,如果是删除、更新、添加操作只需要关闭连接。
关闭资源:mysql_free_result($resource);这个动作的实际含义就是清空资源(查询到的数据)所占的内存。
关闭连接:mysql_close($connect);这个动作的含义就是关闭和MySQL数据库的链接。
MySQL数据库对于表的crud操作是基础,不再赘述。
其余操作在下面的代码中体现。
interface.php:提供了增删查改的流程控制语句
Mysql.class.php:封装了包括数据库连接、数据库设置默认编码、数据库查询、数据库更新的方法
mysql遍历表并打印表格(小数据库,行数不超过50条,以后将会讲分页技术):
View Code
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/>"; } } ?>
View Code
相关文章推荐
- 在php和MySql中计算时间差的方法详解
- gi.2288.org:88 的 Apache httpd.conf & MySql My.ini & PHP5 php.ini 的总体设置
- BBS(php & mysql)完整版(六)
- BBS(php & mysql)完整版(一)
- BBS(php & mysql)完整版(八)
- 《PHP_&_MySQL无需编辑轻松创建数据库网站》
- apache+php+mysql+perl安装详解
- BBS(php & mysql)完整版(四)
- 用PHP和MYSQL建立计数器过程详解
- Linux+Apache+PHP+MySQL+SSL配置详解
- 关于整合php5,apache2.x,mysql中出现"无法载入 mysql 扩展,请检查 PHP 配置"的解决方法
- BBS(php & mysql)完整版(五)
- BBS(php & mysql)完整版(六)
- BBS(php & mysql)完整版(二)
- PHP与MySQL交互使用详解
- Php艰难的一步--"mssql_connect"与"mysql_connect"
- BBS(php & mysql)完整版(八)
- BBS(php & mysql)完整版(二)
- BBS(php & mysql)完整版(三)
- 默默小谈PHP&MYSQL分页原理及实现