mysql 单例模式好处_PHP基于单例模式实现的mysql类

本文实例讲述了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基于单例模式实现的mysql类,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值