2015-05-27
php单态设计模式,我的理解,类中创建静态变量,使其只有一个,使用方法进行返回对象,该方法 检查对象是存在不存在就创建。从而实现单一对象。
将__construct()设置为private这样就new不了咯.self是本类的意思。“::”调用静态方法
[php] <?php
/**
*
*/
class myclass
{
static private $db_class;
static public function getClass()
{
if (is_null(self::$db_class)) {
self::$db_class=new myclass();
echo "创建对象咯";
}else{
echo "返回原来的对象";
return self::$db_class;
}
}
private function __construct()
{
echo "11111111111111";
}
public function __destruct(){
echo "<br>aaaaaaaaaaaa";
}
public function show(){
echo "bbbbbbbbbbbbbbb";
}
}
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a->show();
/*//直接new 会报错的噢!!!
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();*/
?>
<?php
/**
*
*/
class myclass
{
static private $db_class;
static public function getClass()
{
if (is_null(self::$db_class)) {
self::$db_class=new myclass();
echo "创建对象咯";
}else{
echo "返回原来的对象";
return self::$db_class;
}
}
private function __construct()
{
echo "11111111111111";
}
public function __destruct(){
echo "<br>aaaaaaaaaaaa";
}
public function show(){
echo "bbbbbbbbbbbbbbb";
}
}
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a=myclass::getClass();
$a->show();
/*//直接new 会报错的噢!!!
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();
new myclass();*/
?>
这个是小例子.下面给出 单态的 mysql类
[php] <?php
// +----------------------------------------------------------------------
// |MySQL操作类
// +----------------------------------------------------------------------
// |@微凉 QQ:496928838
// +----------------------------------------------------------------------
class MySQL{
private $db_mysql_hostname;
private $db_mysql_username;
private $db_mysql_password;
private $db_mysql_database;
private $db_mysql_port;
private $db_mysql_charset;
private $query_list = array();
//查询次数
public $query_count = 0;
//查询开始时间
public $query_start_time;
//当前查询ID
protected $queryID;
//当前连接
protected $conn;
// 事务指令数
protected $transTimes = 0;
// 返回或者影响记录数
protected $numRows = 0;
// 错误信息
protected $error = '';
//静态实例
static private $db_class;
//取得本类
static public function getClass()
{
if (is_null(self::$db_class)) {
self::$db_class=new MySQL();
}
return self::$db_class;
}
//定义为私有方法就new起来咯,要用 getClass
private function __construct()
{
}
public function connect($hostname_or_conf,$username,$password,$database,$port = '3306',$char = 'utf8'){
if(is_array($hostname_or_conf)){
$this->db_mysql_hostname = $hostname_or_conf['hostname'];
$this->db_mysql_username = $hostname_or_conf['username'];
$this->db_mysql_password = $hostname_or_conf['password'];
$this->db_mysql_database = $hostname_or_conf['database'];
$this->db_mysql_port = isset($hostname_or_conf['port'])?$hostname_or_conf['port']:'3306';
$this->db_mysql_charset = isset($hostname_or_conf['charset'])?$hostname_or_conf['charset']:'utf8';
}elseif(!empty($hostname_or_conf)||!empty($username)||!empty($password)||!empty($database))
{
$this->db_mysql_hostname = $hostname_or_conf;
$this->db_mysql_username = $username;
$this->db_mysql_password = $password;
$this->db_mysql_database = $database;
$this->db_mysql_port = $port;
$this->db_mysql_charset = $char;
}else{
die('configuration error.');
}
$server = $this->db_mysql_hostname.':'.$this->db_mysql_port;
$this->conn = mysql_connect($server,$this->db_mysql_username,$this->db_mysql_password,true) or die('Connect MySQL DB error!');
mysql_select_db($this->db_mysql_database,$this->conn) or die('select db error!');
mysql_query("set names " . $this->db_mysql_charset, $this->conn);
}
/**
+----------------------------------------------------------
* 设置数据对象值
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*table,where,order,limit,data,field,join,group,having
+----------------------------------------------------------
*/
public function table($table){
$this->query_list['table'] = $table;
return $this;
}
public function where($where){
$this->query_list['where'] = $where;
return $this;
}
public function order($order){
$this->query_list['order'] = $order;
return $this;
}
public function limit($offset,$length=null){
if (is_null($length)) {
$this->query_list['limit']='limit '.$offset;
return $this;
}else {
if(!isset($length)){
$length = $offset;
$offset = 0;
}
$this->query_list['limit'] = 'limit '.$offset.','.$length;
return $this;
}
}
public function data($data){
//读取数据表字段,然后处理表单数据
$dataList = $this->getFields($this->query_list['table']);
$arr=array();
foreach ($dataList as $key=>$value) {
if (array_key_exists ($key,$data) ) {
$arr[$key]=$data[$key];
}
}
//var_dump($arr);
/*
if(is_object($data)){
$data = get_object_vars($data);
}elseif (is_string($data)){
parse_str($data,$data);
}elseif(!is_array($data)){
//Log:DATA_TYPE_INVALID
}
*/
$this->query_list['data'] = $arr;
return $this;
}
public function field($fields){
$this->query_list['fields'] = $fields;
return $this;
}
public function join($join){
$this->query_list['join'] = $join;
return $this;
}
public function group($group){
$this->query_list['group'] = $group;
return $this;
}
public function having($having){
$this->query_list['having'] = $having;
return $this;
}
/**
+----------------------------------------------------------
* 查询
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function select(){
$select_sql = 'select ';
$fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*';
$select_sql.=$fields;
$select_sql.= ' from `'.$this->query_list['table'].'` ';
isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):'';
isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):'';
isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):'';
isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):'';
isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):'';
isset($this->query_list['limit'])?($select_sql.=' '.$this->query_list['limit']):'';
// echo '----->'.$select_sql;
return $this->query($select_sql);
}
/**
+----------------------------------------------------------
* 增加
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function add(){
$add_sql = 'insert into `'.$this->query_list['table'].'` (';
$data = $this->query_list['data'];
$value = $field = '';
foreach($data as $k=>$v){
$field .= '`'.$k.'`,';
if(is_numeric($v))
$value .= $v.',';
else
$value .= '/''.$v.'/',';
}
$add_sql .= rtrim($field,',').') values ('.rtrim($value,',').')';
// echo 'add_sql'.$add_sql;
return $this->execute($add_sql);
}
/**
+----------------------------------------------------------
* 删除
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function delete(){
$del_sql = 'delete from `'.$this->query_list['table'].'` where '.$this->query_list['where'];
if(isset($this->query_list['order']))
$del_sql .= 'order by '.$this->query_list['order'];
if(isset($this->query_list['limit']))
$del_sql .= ' '.$this->query_list['limit'];
return $this->execute($del_sql);
}
/**
+----------------------------------------------------------
* 更新
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function update(){
$update_sql = 'update `'.$this->query_list['table'].'` set ';
$data = $this->query_list['data'];
foreach($data as $k=>$v){
if(is_numeric($v))
$update_sql .= '`'.$k.'` ='.$v.',';
else
$update_sql .= '`'.$k.'` =/''.$v.'/',';
}
$update_sql = rtrim($update_sql,',');
if(isset($this->query_list['where']))
$update_sql .= ' where '.$this->query_list['where'];
if(isset($this->query_list['order']))
$update_sql .= ' order by '.$this->query_list['order'];
if(isset($this->query_list['limit']))
$update_sql .= ' '.$this->query_list['limit'];
return $this->execute($update_sql);
}
/**
+----------------------------------------------------------
* 执行查询 返回数据集
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sql sql指令
*/
public function query($sql) {
if ( !$this->conn ) return false;
$this->queryStr = $sql;
//释放前次的查询结果
if ( $this->queryID ) { $this->free(); }
$this->query_start_time = microtime(true);
$this->queryID = mysql_query($sql, $this->conn);
$this->query_count++;
if ( false === $this->queryID ) {
$this->error();
return false;
} else {
$this->numRows = mysql_num_rows($this->queryID);
return $this->getAll();
}
}
/**
+----------------------------------------------------------
* 执行语句
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sql sql指令
+----------------------------------------------------------
*/
public function execute($sql) {
if ( !$this->conn ) return false;
$this->queryStr = $sql;
//释放前次的查询结果
if ( $this->queryID ) { $this->free(); }
$this->query_start_time = microtime(true);
$result = mysql_query($sql, $this->conn) ;
$this->query_count++;
if ( false === $result) {
$this->error();
return false;
} else {
$this->numRows = mysql_affected_rows($this->conn);
return $this->numRows;
}
}
/**
+----------------------------------------------------------
* 获得所有的查询数据
+----------------------------------------------------------
* @access private
+----------------------------------------------------------
* @return array
*/
private function getAll() {
//返回数据集
$result = array();
if($this->numRows >0) {
while($row = mysql_fetch_assoc($this->queryID)){
$result[] = $row;
}
mysql_data_seek($this->queryID,0);
}
return $result;
}
/**
+----------------------------------------------------------
* 取得数据表的字段信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function getFields($tableName) {
$result = $this->query('SHOW COLUMNS FROM `'.$tableName.'`');
$info = array();
if($result) {
foreach ($result as $key => $val) {
$info[$val['Field']] = array(
'name' => $val['Field'],
'type' => $val['Type'],
'notnull' => (bool) ($val['Null'] === ''), // not null is empty, null is yes
'default' => $val['Default'],
'primary' => (strtolower($val['Key']) == 'pri'),
'autoinc' => (strtolower($val['Extra']) == 'auto_increment'),
);
}
}
return $info;
}
/**
+----------------------------------------------------------
* 取得数据库的表信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function getTables($dbName='') {
if(!empty($dbName)) {
$sql = 'SHOW TABLES FROM '.$dbName;
}else{
$sql = 'SHOW TABLES ';
}
$result = $this->query($sql);
$info = array();
foreach ($result as $key => $val) {
$info[$key] = current($val);
}
return $info;
}
/**
+----------------------------------------------------------
* 最后次操作的ID
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function last_insert_id(){
return mysql_insert_id($this->conn);
}
/**
* 执行一条带有结果集计数的
*/
public function count($sql){
return $this->execute($sql);
}
/**
+----------------------------------------------------------
* 启动事务
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return void
+----------------------------------------------------------
*/
public function startTrans() {
if ($this->transTimes == 0) {
mysql_query('START TRANSACTION', $this->conn);
}
$this->transTimes++;
return ;
}
/**
+----------------------------------------------------------
* 提交事务
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
*/
public function commit()
{
if ($this->transTimes > 0) {
$result = mysql_query('COMMIT', $this->conn);
$this->transTimes = 0;
if(!$result){
throw new Exception($this->error());
}
}
return true;
}
/**
+----------------------------------------------------------
* 事务回滚
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
*/
public function rollback()
{
if ($this->transTimes > 0) {
$result = mysql_query('ROLLBACK', $this->conn);
$this->transTimes = 0;
if(!$result){
throw new Exception($this->error());
}
}
return true;
}
/**
+----------------------------------------------------------
* 错误信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function error() {
$this->error = mysql_error($this->conn);
if('' != $this->queryStr){
$this->error .= "/n [ SQL语句 ] : ".$this->queryStr;
}
return $this->error;
}
/**
+----------------------------------------------------------
* 释放查询结果
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function free() {
@mysql_free_result($this->queryID);
$this->queryID = 0;
$this->query_list = null;
}
/**
+----------------------------------------------------------
* 关闭连接
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
function close(){
if ($this->conn && !mysql_close($this->conn)){
throw new Exception($this->error());
}
$this->conn = 0;
$this->query_count = 0;
}
/**
+----------------------------------------------------------
* 析构方法
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
function __destruct(){
$this->close();
}
}
<?php
// +----------------------------------------------------------------------
// |MySQL操作类
// +----------------------------------------------------------------------
// |@微凉 QQ:496928838
// +----------------------------------------------------------------------
class MySQL{
private $db_mysql_hostname;
private $db_mysql_username;
private $db_mysql_password;
private $db_mysql_database;
private $db_mysql_port;
private $db_mysql_charset;
private $query_list = array();
//查询次数
public $query_count = 0;
//查询开始时间
public $query_start_time;
//当前查询ID
protected $queryID;
//当前连接
protected $conn;
// 事务指令数
protected $transTimes = 0;
// 返回或者影响记录数
protected $numRows = 0;
// 错误信息
protected $error = '';
//静态实例
static private $db_class;
//取得本类
static public function getClass()
{
if (is_null(self::$db_class)) {
self::$db_class=new MySQL();
}
return self::$db_class;
}
//定义为私有方法就new起来咯,要用 getClass
private function __construct()
{
}
public function connect($hostname_or_conf,$username,$password,$database,$port = '3306',$char = 'utf8'){
if(is_array($hostname_or_conf)){
$this->db_mysql_hostname = $hostname_or_conf['hostname'];
$this->db_mysql_username = $hostname_or_conf['username'];
$this->db_mysql_password = $hostname_or_conf['password'];
$this->db_mysql_database = $hostname_or_conf['database'];
$this->db_mysql_port = isset($hostname_or_conf['port'])?$hostname_or_conf['port']:'3306';
$this->db_mysql_charset = isset($hostname_or_conf['charset'])?$hostname_or_conf['charset']:'utf8';
}elseif(!empty($hostname_or_conf)||!empty($username)||!empty($password)||!empty($database))
{
$this->db_mysql_hostname = $hostname_or_conf;
$this->db_mysql_username = $username;
$this->db_mysql_password = $password;
$this->db_mysql_database = $database;
$this->db_mysql_port = $port;
$this->db_mysql_charset = $char;
}else{
die('configuration error.');
}
$server = $this->db_mysql_hostname.':'.$this->db_mysql_port;
$this->conn = mysql_connect($server,$this->db_mysql_username,$this->db_mysql_password,true) or die('Connect MySQL DB error!');
mysql_select_db($this->db_mysql_database,$this->conn) or die('select db error!');
mysql_query("set names " . $this->db_mysql_charset, $this->conn);
}
/**
+----------------------------------------------------------
* 设置数据对象值
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*table,where,order,limit,data,field,join,group,having
+----------------------------------------------------------
*/
public function table($table){
$this->query_list['table'] = $table;
return $this;
}
public function where($where){
$this->query_list['where'] = $where;
return $this;
}
public function order($order){
$this->query_list['order'] = $order;
return $this;
}
public function limit($offset,$length=null){
if (is_null($length)) {
$this->query_list['limit']='limit '.$offset;
return $this;
}else {
if(!isset($length)){
$length = $offset;
$offset = 0;
}
$this->query_list['limit'] = 'limit '.$offset.','.$length;
return $this;
}
}
public function data($data){
//读取数据表字段,然后处理表单数据
$dataList = $this->getFields($this->query_list['table']);
$arr=array();
foreach ($dataList as $key=>$value) {
if (array_key_exists ($key,$data) ) {
$arr[$key]=$data[$key];
}
}
//var_dump($arr);
/*
if(is_object($data)){
$data = get_object_vars($data);
}elseif (is_string($data)){
parse_str($data,$data);
}elseif(!is_array($data)){
//Log:DATA_TYPE_INVALID
}
*/
$this->query_list['data'] = $arr;
return $this;
}
public function field($fields){
$this->query_list['fields'] = $fields;
return $this;
}
public function join($join){
$this->query_list['join'] = $join;
return $this;
}
public function group($group){
$this->query_list['group'] = $group;
return $this;
}
public function having($having){
$this->query_list['having'] = $having;
return $this;
}
/**
+----------------------------------------------------------
* 查询
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function select(){
$select_sql = 'select ';
$fields = isset($this->query_list['fields'])?$this->query_list['fields']:'*';
$select_sql.=$fields;
$select_sql.= ' from `'.$this->query_list['table'].'` ';
isset($this->query_list['join'])?($select_sql.=$this->query_list['join']):'';
isset($this->query_list['where'])?($select_sql.=' where '.$this->query_list['where']):'';
isset($this->query_list['group'])?($select_sql.=' group by'.$this->query_list['group']):'';
isset($this->query_list['having'])?($select_sql.=' mysql having '.$this->query_list['having']):'';
isset($this->query_list['order'])?($select_sql.=' order by '.$this->query_list['order']):'';
isset($this->query_list['limit'])?($select_sql.=' '.$this->query_list['limit']):'';
// echo '----->'.$select_sql;
return $this->query($select_sql);
}
/**
+----------------------------------------------------------
* 增加
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function add(){
$add_sql = 'insert into `'.$this->query_list['table'].'` (';
$data = $this->query_list['data'];
$value = $field = '';
foreach($data as $k=>$v){
$field .= '`'.$k.'`,';
if(is_numeric($v))
$value .= $v.',';
else
$value .= '/''.$v.'/',';
}
$add_sql .= rtrim($field,',').') values ('.rtrim($value,',').')';
// echo 'add_sql'.$add_sql;
return $this->execute($add_sql);
}
/**
+----------------------------------------------------------
* 删除
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function delete(){
$del_sql = 'delete from `'.$this->query_list['table'].'` where '.$this->query_list['where'];
if(isset($this->query_list['order']))
$del_sql .= 'order by '.$this->query_list['order'];
if(isset($this->query_list['limit']))
$del_sql .= ' '.$this->query_list['limit'];
return $this->execute($del_sql);
}
/**
+----------------------------------------------------------
* 更新
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function update(){
$update_sql = 'update `'.$this->query_list['table'].'` set ';
$data = $this->query_list['data'];
foreach($data as $k=>$v){
if(is_numeric($v))
$update_sql .= '`'.$k.'` ='.$v.',';
else
$update_sql .= '`'.$k.'` =/''.$v.'/',';
}
$update_sql = rtrim($update_sql,',');
if(isset($this->query_list['where']))
$update_sql .= ' where '.$this->query_list['where'];
if(isset($this->query_list['order']))
$update_sql .= ' order by '.$this->query_list['order'];
if(isset($this->query_list['limit']))
$update_sql .= ' '.$this->query_list['limit'];
return $this->execute($update_sql);
}
/**
+----------------------------------------------------------
* 执行查询 返回数据集
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sql sql指令
*/
public function query($sql) {
if ( !$this->conn ) return false;
$this->queryStr = $sql;
//释放前次的查询结果
if ( $this->queryID ) { $this->free(); }
$this->query_start_time = microtime(true);
$this->queryID = mysql_query($sql, $this->conn);
$this->query_count++;
if ( false === $this->queryID ) {
$this->error();
return false;
} else {
$this->numRows = mysql_num_rows($this->queryID);
return $this->getAll();
}
}
/**
+----------------------------------------------------------
* 执行语句
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $sql sql指令
+----------------------------------------------------------
*/
public function execute($sql) {
if ( !$this->conn ) return false;
$this->queryStr = $sql;
//释放前次的查询结果
if ( $this->queryID ) { $this->free(); }
$this->query_start_time = microtime(true);
$result = mysql_query($sql, $this->conn) ;
$this->query_count++;
if ( false === $result) {
$this->error();
return false;
} else {
$this->numRows = mysql_affected_rows($this->conn);
return $this->numRows;
}
}
/**
+----------------------------------------------------------
* 获得所有的查询数据
+----------------------------------------------------------
* @access private
+----------------------------------------------------------
* @return array
*/
private function getAll() {
//返回数据集
$result = array();
if($this->numRows >0) {
while($row = mysql_fetch_assoc($this->queryID)){
$result[] = $row;
}
mysql_data_seek($this->queryID,0);
}
return $result;
}
/**
+----------------------------------------------------------
* 取得数据表的字段信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function getFields($tableName) {
$result = $this->query('SHOW COLUMNS FROM `'.$tableName.'`');
$info = array();
if($result) {
foreach ($result as $key => $val) {
$info[$val['Field']] = array(
'name' => $val['Field'],
'type' => $val['Type'],
'notnull' => (bool) ($val['Null'] === ''), // not null is empty, null is yes
'default' => $val['Default'],
'primary' => (strtolower($val['Key']) == 'pri'),
'autoinc' => (strtolower($val['Extra']) == 'auto_increment'),
);
}
}
return $info;
}
/**
+----------------------------------------------------------
* 取得数据库的表信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function getTables($dbName='') {
if(!empty($dbName)) {
$sql = 'SHOW TABLES FROM '.$dbName;
}else{
$sql = 'SHOW TABLES ';
}
$result = $this->query($sql);
$info = array();
foreach ($result as $key => $val) {
$info[$key] = current($val);
}
return $info;
}
/**
+----------------------------------------------------------
* 最后次操作的ID
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function last_insert_id(){
return mysql_insert_id($this->conn);
}
/**
* 执行一条带有结果集计数的
*/
public function count($sql){
return $this->execute($sql);
}
/**
+----------------------------------------------------------
* 启动事务
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return void
+----------------------------------------------------------
*/
public function startTrans() {
if ($this->transTimes == 0) {
mysql_query('START TRANSACTION', $this->conn);
}
$this->transTimes++;
return ;
}
/**
+----------------------------------------------------------
* 提交事务
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
*/
public function commit()
{
if ($this->transTimes > 0) {
$result = mysql_query('COMMIT', $this->conn);
$this->transTimes = 0;
if(!$result){
throw new Exception($this->error());
}
}
return true;
}
/**
+----------------------------------------------------------
* 事务回滚
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @return boolen
+----------------------------------------------------------
*/
public function rollback()
{
if ($this->transTimes > 0) {
$result = mysql_query('ROLLBACK', $this->conn);
$this->transTimes = 0;
if(!$result){
throw new Exception($this->error());
}
}
return true;
}
/**
+----------------------------------------------------------
* 错误信息
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
public function error() {
$this->error = mysql_error($this->conn);
if('' != $this->queryStr){
$this->error .= "/n [ SQL语句 ] : ".$this->queryStr;
}
return $this->error;
}
/**
+----------------------------------------------------------
* 释放查询结果
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
public function free() {
@mysql_free_result($this->queryID);
$this->queryID = 0;
$this->query_list = null;
}
/**
+----------------------------------------------------------
* 关闭连接
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param
+----------------------------------------------------------
*/
function close(){
if ($this->conn && !mysql_close($this->conn)){
throw new Exception($this->error());
}
$this->conn = 0;
$this->query_count = 0;
}
/**
+----------------------------------------------------------
* 析构方法
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
*/
function __destruct(){
$this->close();
}
}
使用方法
[php] $this->db = MySQL::getClass();
//var_dump($this->db);
$this->db -> connect("127.0.0.1","root","1234","myly");
$this->db = MySQL::getClass();
//var_dump($this->db);
$this->db -> connect("127.0.0.1","root","1234","myly");
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
04-12
常用dos命令及语法
2014-09-27
PHP中include和require区别之我见
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
php递归返回值的问题
2014-09-05
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
收割者剑客传奇免谷歌汉化版下载v2.0.1 安卓版
其它手游 40.19MB
下载
reaper收割者破解版下载v2.0.1 安卓完美版
其它手游 40.19MB
下载
reaper汉化版下载v2.0.1 安卓中文版
其它手游 40.19MB
下载
死神苍白剑士的传说中文版(Reaper)下载v2.0.1 安卓版
其它手游 40.19MB
下载
宝宝巴士迷宫小镇下载v9.89.99.01 官方安卓版
其它手游 113.4MB
下载
宝宝迷宫大作战游戏下载v9.89.99.01 安卓版
其它手游 113.4MB
下载
宝宝巴士干净的妙妙游戏下载v9.89.99.00 安卓版
其它手游 76.43MB
下载
妙妙爱干净宝宝巴士下载v9.89.99.00 安卓版
其它手游 76.43MB
下载翻炒厨师游戏下载v2.1.3 安卓版
下载
维塔战士游戏最新版下载v976 安卓版
下载
泡泡小镇城堡游戏下载v1.1.5 安卓完整版
下载
3d蚊子模拟器游戏最新版下载v2023.08.22 安卓版
下载
超级机器人英雄游戏下载v1.1.3 安卓版
下载
robot super游戏下载v1.1.3 安卓版
下载
zombie tsunami游戏下载v4.6.8 安卓版
下载
2026僵尸尖叫正版下载v4.6.8 安卓官方版
下载