您的位置:首页 > 编程语言 > PHP开发

【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:提供了增删查改的流程控制语句

<?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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: