时时商务社区
标题:
PHP基于单例模式实现的mysql类
[打印本页]
作者:
wx_pylelnL4
时间:
2018-2-14 05:39
本文实例讲述了PHP基于单例模式实现的mysql类。分享给大家供大家参考,具体如下:
host = $conf->host;
self:
ins->user = $conf->user;
self:
ins->passwd = $conf->pwd;
self:
ins->db = $conf->db;
self:
ins->port = $conf->port;
self:
ins->connect();
self:
ins->select_db();
self:
ins->setChar();
return self:
ins;
}
// 不让外部做new操作,
protected function __construct() {
}
// 连接数据库
public function connect() {
$this->conn = @mysql_connect($this->host,$this->user,$this->passwd,$this->port);
if(!$this->conn) {
$error = new Exception('数据库连不上',9);
throw $error;
}
}
// 发送sql查询
public function query($sql) {
$rs = mysql_query($sql,$this->conn);
if(!$rs) {
log::write($sql);
}
return $rs;
}
// 封装一个getAll方法
// 参数
sql
// 返回: array,false
public function getAll($sql) {
$rs = $this->query($sql);
if(!$rs) {
return false;
}
$list = array();
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
}
return $list;
}
// 封装一个getRow方法
// 参数
sql
// 返回: array,false
public function getRow($sql) {
$rs = $this->query($sql);
if(!$rs) {
return false;
}
return mysql_fetch_assoc($rs);
}
// 封装一个getOne方法,
// 参数: $sql
// 返回: int,str(单一的值)
public function getOne($sql) {
$rs = $this->query($sql);
if(!$rs) {
return false;
}
$tmp = mysql_fetch_row($rs);
return $tmp[0];
}
// 封装一个afftect_rows()方法
// 参数:无
// 返回 int 受影响行数
public function affected_rows() {
return mysql_affected_rows($this->conn);
}
// 返回最新生成的auto_increment列的值
public function last_id() {
return mysql_insert_id($this->conn);
}
// 选库函数
public function select_db() {
$sql = 'use ' . $this->db;
return $this->query($sql);
}
// 设置字符集的函数
public function setChar() {
$sql = 'set names utf8';
return $this->query($sql);
}
// 自动生成insert语句,update语句并执行
public function autoExecute($data,$table,$act='insert',$where='') {
if($act == 'insert') {
$sql = 'insert into ' . $table . ' (';
$sql .= implode(',',(array_keys($data)));
$sql .= ') values (\'';
$sql .= implode("','",array_values($data));
$sql .= "')";
} else if($act == 'update') {
if(!trim($where)) {
return false;
}
$sql = 'update ' . $table . ' set ';
foreach($data as $k=>$v) {
$sql .= $k;
$sql .= '=';
$sql .= "'".$v."',";
}
$sql = substr($sql,0,-1);
$sql .= ' where ';
$sql .= $where;
} else {
return false;
}
//return $sql;
return $this->query($sql);
}
}
更多关于PHP数据库操作相关内容感兴趣的读者可查看本站专题:《
php+mysql数据库操作入门教程
》、《
PHP基于pdo操作数据库技巧总结
》及《
php常见数据库操作技巧汇总
》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:
php设计模式 Proxy (代理模式)
php设计模式 Template (模板模式)
php设计模式 Singleton(单例模式)
PHP最常用的2种设计模式工厂模式和单例模式介绍
php单例模式实现(对象只被创建一次)
php设计模式小结
php利用单例模式实现日志处理类库
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
PHP实现单例模式最安全的做法
PHP基于单例模式编写PDO类的方法
php基于单例模式封装mysql类完整实例
PHP单例模式简单用法示例
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2