<?php
/*
* Mysql数据库操作类
* 实现Mysql的连接,只支持操作mysql数据库。
* 默认字符集:UTF-8
* 使用方法:new MysqlConnection(数据库服务器地址,用户名,密码,数据库名,字符集='utf8');
* 暂时功能:
* 数据库查询 :Limit_Sql(表名,条件,查询字段)
* 插入新数据 :Insert_Sql(表名,条件)、
* 修改数据 :Update_Sql(表名,修改字段,条件)、
* 删除数据 :Del_Sql(表名,条件)、
* 清空表 :Trun_Sql(表名,条件)、
* 直接执行语句 :SqlQuery(sql语句)、
* 统计数据条数 :Count(表名,条件)、
* 制作人:谭宁宁
* 联系方式:QQ:597398742,MSN:cntnn11@live.cn
* 最近修改时间:2011年09月14日
* 修改说明:修正无法连接数据库的BUG!
* 添加 connect()方法。用于数据库连接
* 修改说明:修正query方法里的 $this->connect()连接句柄错误
* 添加Count(tablename,where)方法。统计数据库条数
* 说明:这是较深入学习‘面向对象’后进行的修改。
* 欢迎各位PHP同行前来一块讨论!(尤其是女PHP开发,嘿嘿~)
*/
class MysqlConnection
{
public $dbtype=""; //数据库连接类型
public $dbip=""; //数据库服务器IP
public $dbuser=""; //用户名
public $dbpwd=""; //密码
public $dbname=""; //数据库名称
public $dbchar="utf8"; //字符集,默认utf8
public $conn=""; //Mysql连接变量
/*
* 构造函数
* 进行MySQL连接
*/
function __construct($dbip,$dbuser,$dbpwd,$dbname,$dbchar='utf8')
{
$this->dbip=$dbip;
$this->dbuser=$dbuser;
$this->dbpwd=$dbpwd;
$this->dbname=$dbname;
$this->dbchar=$dbchar;
}
/*
* 数据库链接方法
*/
function connect()
{
$this->conn=mysql_connect($this->dbip,$this->dbuser,$this->dbpwd) or die('无法连接到数据库!');
$this->sel_db();
return $this->conn;
}
/*
* 选择数据库&设置字符集
*/
public function sel_db()
{
mysql_select_db($this->dbname) or die('无法打开数据库!'); //选择数据库
mysql_set_charset($this->dbchar); //设置字符集
}
/*
* query方式执行SQL语句
* 返回一个未处理的查询结果集
*/
private function query($sql)
{
$conn=$this->connect();
$result=mysql_query($sql,$conn) or die("语句错误!请联系管理员解决!");
return $result;
}
/*
* 关闭数据库
*/
public function close()
{
mysql_close($this->connect());
}
/*
* SQL查询操作
* 方法名:Limit_Sql(表名,条件,查询字段)
*/
public function Limit_Sql($table_name,$where='',$sqldata='*')
{
$sql="select $sqldata from $table_name $where";/*生成sql语句*/
$rs=$this->query($sql); /*本地调用query执行方法*/
$this->close(); /*本地调用close方法,关闭数据库*/
$this->free();
if($rs)/*返回sql执行之后的结果集*/
{ return $rs;}
else
{ return false;}
}
/*
*直接执行sql语句
*目前用于未考虑的sql语句
*/
public function SqlQuery($sql)
{
$result=$this->query($sql);
$this->close();
if($result)
{ return $result; }
else
{ return false; }
}
/*
*功能:将查询得到的结果以二维数组的形式返回
*返回的数组格式:array=(1=>array('字段'='字段值'));
*配合Limit_Sql使用
*/
public function R_Limit($result)
{
$list=array();
$re=array();
$i=0;
while($rs=mysql_fetch_array($result))
{
$re[$i]=$rs;
$i++;
}
foreach($re as $key=>$value)
{
foreach($value as $k2=>$v2)
{
//如果$2键名为数字,则continue,取消本次操作
if(is_integer($k2))
{ continue; }
//$key表示一共有几条数据$k2表示字段名,$v2表示该字段下的值
$list[$key][$k2]=$v2;
}
}
return $list;
}
/*
*SQL添加操作
*方法名:Insert_Sql(表名,查询字段,条件)
*/
public function Insert_Sql($table_name,$sqldata,$where='')
{
$sql="insert into $table_name set $sqldata $where";
/*本地调用连接方法*/
$result=MysqlConnection::query($sql); /*本地调用query执行方法*/
$this->close(); /*本地调用close方法,关闭数据库*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*SQL修改操作
*方法名:Update_Sql(表名,查询字段,条件)
*/
public function Update_Sql($table_name,$sqldata,$where='')
{
$sql="update $table_name set $sqldata $where";//生成SQL语句
/*本地调用连接方法*/
$result=$this->query($sql); /*本地调用query执行方法*/
$this->close(); /*本地调用close方法,关闭数据库*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*删除操作
*方法名:Del_Sql(表名,条件)
*/
public function Del_Sql($table_name,$where='')
{
$sql="delete from $table_name $where";
/*本地调用连接方法*/
$result=$this->query($sql); /*本地调用query执行方法*/
$this->close(); /*本地调用close方法,关闭数据库*/
if($result)
{ return true;}
else
{ return false;}
}
/*
*清空表
*方法名:Trun_Sql(表名)
*/
public function Trun_Sql($table_name)
{
$sql="TRUNCATE TABLE $table_name";
/*本地调用连接方法*/
$result=$this->query($sql); /*本地调用query执行方法*/
$this->close(); /*本地调用close方法,关闭数据库*/
if($result)
{ return true;}
else
{ return false;}
}
/*
* 释放查询结果
*/
function Count($table_name='',$where='')
{
$sql="select count(*) from $table_name $where";
$result=$this->SqlQuery($sql);
return $result;
}
/*
* 释放查询结果
*/
function free()
{
@mysql_free_result($this->connect());
}
/*
* 析构函数
*/
function __destruct()
{
}
}
?>