Home > Article > Backend Development > PHP的SqlHelp
<?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);?>