<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of db
* 数据库查询类
*/
//defined('SGM') or die('Error 404: page not find!');
class Mysql {
private $pre = '',
$sql = '';
private $link = null,
$q = null;
private $rows = 0;
private $begintime = 0;
private $alltime = array();
public static $charset = "utf8";
/**
* @var DB
* @static
* @access private
*/
private static $self = null;
private $times = 0;
public function Mysql ($host, $user, $pwd, $db, $pre = '') {
$this->pre = $pre;
$this->connect($host, $user, $pwd, $db);
Mysql::$self = $this;
}
/**
* @param string $host
* @param string $host
* @param string $pwd
* @param string $db
* @param string $pre
* @return DB
*/
public static function init($host='', $user='', $pwd='', $db='', $pre = '') {
if(!(Mysql::$self instanceof DB)){
Mysql::$self = new Mysql($host, $user, $pwd, $db, $pre);
}
return Mysql::$self;
}
/**
* 创建连接
*/
private function connect($host, $user, $pwd, $db, $pre = '') {
$this->pre = $pre;
if(! $this->link = mysql_connect($host, $user, $pwd)) die(
'Connection to mysql server could not be established.');
if(! mysql_select_db($db, $this->link)) die(
'Database could not be selected.');
}
/**
* 执行sql
* @param string $sql
* @return Mysql
*/
public function query($sql) {
$this->times ++;
$this->begintime = microtime();
mysql_query('SET NAMES '.self::$charset, $this->link);
$this->sql = $sql;
$this->q = mysql_query($sql, $this->link);
$this->alltime[] = array('t' => microtime() - $this->begintime,
's' => $sql);
return $this;
}
/**
* 获取单个查询值
* @param string $sql
* @return mixed
*/
public function getOne($sql = '') {
if(strlen(trim($sql)) > 0){
$this->query($sql);
}
if($this->check()){
$result = mysql_fetch_array($this->q, MYSQL_NUM);
mysql_free_result($this->q);
return $result[0];
}
return false;
}
/**
* 获取一条记录
* @param string $sql
* @return array
*/
public function getRow($sql = '') {
if(strlen(trim($sql)) > 0){
$this->query($sql);
}
if($this->check()){
$result = mysql_fetch_assoc($this->q);
mysql_free_result($this->q);
return $result;
}else{
return array();
}
}
/**
* 获取所有查询
* @param string $sql
* @return array
*/
public function getAll($sql = '') {
if(strlen(trim($sql)) > 0){
$this->query($sql);
}
$return = array();
if($this->check()){
while($temp = mysql_fetch_assoc($this->q))
$return[] = $temp;
$this->rows = mysql_num_rows($this->q);
mysql_free_result($this->q);
return $return;
}else{
return array();
}
}
/**
* 获取插入ID
* @return int
*/
public function InsertId($seq=0) {
return mysql_insert_id($this->link);
}
/**
* 获取影响行数
* @return int
*/
public function rowNummber() {
return $this->rows;
}
/**
* 检查查询是否成功
* @return bool
*/
public function check() {
return $this->q === false ? false : true;
}
/**
* 获得连接
* @return resource
*/
public function getLink() {
return $this->link;
}
/**
* 获得本次连接的查询语句
* @return string
*/
public function getSQL() {
return $this->sql;
}
/**
* 获得类名
* @return string
*/
public function __toString() {
return __CLASS__;
}
/**
* 获得执行时间
* @return float
*/
public function getTimeInfo() {
return $this->alltime;
}
/**
* 获得执行次数
* @return Int
*/
public function getTimes() {
return $this->times;
}
/**
* 获得结果行数
* @return Int
*/
public function getResultRows() {
$rows = mysql_num_rows($this->q);
mysql_free_result($this->q);
return $rows;
}
/**
* $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $
* 获得最后执行语句的错误
* @desc getLastError
* @access public
* @return string
* @version $Revision: 685 $
*/
public function getLastError(){
return mysql_error($this->link);
}
/**
* $Id: Mysql.php 685 2009-12-03 10:49:04Z HH.Sun $
* mysql_real_escape_string 调用
* @desc escape
* @access public
* @param string $sql
* @return string
*
* @since 2009-9-25 下午02:06:41
* @version $Revision: 685 $
*/
public function escape($sql){
return mysql_real_escape_string($sql,$this->link);
}
}
?>
初始化:
<?PHP
//如果是多个文件global下好了
global $db;
$db = new Mysql(...............................);
$sql = "................................................";
$one = $db->getOne($sql);
$line = $db->getRow($sql);
$all = $db->getAll($sql);
//其他文件
global $db;
$sql = "................................................";
$one = $db->getOne($sql);
$line = $db->getRow($sql);
$all = $db->getAll($sql);
?>