/*
*PHP管理MYSQL的数据库类
使用方法:$dbConn = new DbConn([$数据库名(可选)]);
允许返回的方法:
Execute($sql) //执行SQL语句,没有返回值;
getRs($sql) //返回查询语句的记录,一条;
getRsArray($sql) //返回记录集数组;
getGoPageRs($sql,$maxline,$offset) //返回翻页程序所需要的数组;
Quit() //关闭数据库连接
getParameter() //返回分页以及排序的参数
getInsertID() //返回插入的最后一条记录
允许返回的属性:
$num_rows; //执行操作的记录集的数量;
$affected_rows //执行操作影响的记录数;
*/
class DbConn{
var $servername="localhost"; // 数据库连接服务地址
var $dbname="xinwei"; // 连接数据库名
var $username = "root"; // 登陆用户
var $password = ""; // 登陆密码
var $conn; // 数据库连接指针
var $num_rows; // 返回的条目数
var $query_id; // 执行query命令的指针
var $affected_rows; // 传回query命令所影响的列数目
var $insertid; // 最新插入记录的ID号
//下面是和分页程序有关的变量;
var $offset; //分页偏移量
var $maxline = 12; //显示行数
var $offset; //设置偏移量
var $tpages; //总页数
var $total; //总记录数
function DbConn($dbname=""){ //构造函数,建立数据库连接,可以指定连接到其他数据库
$this->conn = @mysql_connect($this->servername, $this->username, $this->password) or die(mysql_error("数据库链接失败"));
if($dbname!=""){
$this->dbname = $dbname;
}
if(!mysql_select_db($this->dbname)){
$this->getErr("数据库链接失败");
}
return $this->conn;
}
function Quit(){ //关闭数据库连接
mysql_close($this->conn);
}
function Execute($sql){
$query_id = $this->query($sql);
$this->affected_rows=mysql_affected_rows($this->conn);
$this->free_result($query_id);
}
function getRs($sql) { //只返回一条记录
$query_id=$this->query($sql);
$returnarray=mysql_fetch_array($query_id);
$this->num_rows=mysql_num_rows($query_id);
$this->free_result($query_id);
return $returnarray;
}
function getRsArray($sql) { //只返回所有记录
$query_id=$this->query($sql);
$this->num_rows=mysql_num_rows($query_id);
for($i=0;$inum_rows;$i++){
$returnarray[$i]=mysql_fetch_array($query_id);
}
$this->free_result($query_id);
return $returnarray;
}
/**
* 调用方式,可以设置$maxline显示的条数,也可以不设置,默认是12条记录,
* 如果不设置$maxline调用就直接使用 getGopageRs($sql);
* 否则需要调用 getGopageRs($sql,$maxline);
*/
function getGopageRs($sql,$maxline=""){ //返回翻页程序 需要传递sql语句,每页显示条数,以及偏移量
global $page;
if(empty($page)){
$page=1;
}
if($maxline!=""){
$this->maxline = $maxline;
}
$this->offset = ceil(($page-1)*$this->maxline);
$query_id=$this->query($sql);
$this->total =mysql_num_rows($query_id); //计算出总记录数
$this->free_result($query_id);
$sql= $sql." LIMIT ".$this->offset.",".$this->maxline;
$query_id=$this->query($sql);
$this->num_rows=mysql_num_rows($query_id); //当前页的记录数
for($i=0;$inum_rows;$i++){
$returnarray[$i]=mysql_fetch_array($query_id);
}
$this->free_result($query_id);
$this->tpages = ceil($this->total/$this->maxline); //计算总页数
return $returnarray;
}
/**
*参数列表字符串
*/
function getParameter(){
global $deferentparameter;
global $selfvariable;
global $page;
$parameter = "page=".$page.$selfvariable.$deferentparameter;
return $parameter;
}
function getInsertID(){ //得到最新插入的一条记录的自增ID号
$this->insertid = mysql_insert_id();
if (!$this->insertid){
$this->getErr("无法得到最新的记录ID!");
}
return $this->insertid;
}
function query($sql){ // 执行queyr指令
$this->query_id=@mysql_query($sql,$this->conn);
if(!$this->query_id){
$this->getErr("错误的SQL语句: ".$sql);
}
return $this->query_id;
}
function num_rows($queryid) { //返回记录数
$this->num_rows = mysql_num_rows($queryid);
return $this->num_rows;
}
function free_result($query_id){ // 释放query资源
@mysql_free_result($query_id);
}
function getErr($errmsg) // 数据库出错,无法连接成功
{
$msg="
-数据库错误
";
$msg.=$errmsg;
echo $msg;
die();
}
}
?>