商城数据库类
2015-11-22 11:38
357 查看
defined('ACC')||exit('ACC Denied');
class mysql extends db {
private static $ins = NULL;
private $conn = NULL;
private $conf = array();
protected function __construct() {
$this->conf = conf::getIns();
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
$this->select_db($this->conf->db);
$this->setChar($this->conf->char);
}
public function __destruct() {
}
public static function getIns() {
if(!(self::$ins instanceof self)) {
self::$ins = new self();
}
return self::$ins;
}
public function connect($h,$u,$p) {
$this->conn = mysql_connect($h,$u,$p);
if(!$this->conn) {
$err = new Exception('连接失败');
throw $err;
}
}
protected function select_db($db) {
$sql = 'use ' . $db;
$this->query($sql);
}
protected function setChar($char) {
$sql = 'set names ' . $char;
return $this->query($sql);
}
public function query($sql) {
$rs = mysql_query($sql,$this->conn);
log::write($sql);
return $rs;
}
public function autoExecute($table,$arr,$mode='insert',$where = ' where 1 limit 1') {
/* insert into tbname (username,passwd,email) values ('',)
/// 把所有的键名用','接起来
// implode(',',array_keys($arr));
// implode("','",array_values($arr));
*/
if(!is_array($arr)) {
return false;
}
if($mode == 'update') {
$sql = 'update ' . $table .' set ';
foreach($arr as $k=>$v) {
$sql .= $k . "='" . $v ."',";
}
$sql = rtrim($sql,',');
$sql .= $where;
return $this->query($sql);
}
$sql = 'insert into ' . $table . ' (' . implode(',',array_keys($arr)) . ')';
$sql .= ' values (\'';
$sql .= implode("','",array_values($arr));
$sql .= '\')';
return $this->query($sql);
}
public function getAll($sql) {
$rs = $this->query($sql);
$list = array();
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
}
return $list;
}
public function getRow($sql) {
$rs = $this->query($sql);
return mysql_fetch_assoc($rs);
}
public function getOne($sql) {
$rs = $this->query($sql);
$row = mysql_fetch_row($rs);
return $row[0];
}
// 返回影响行数的函数
public function affected_rows() {
return mysql_affected_rows($this->conn);
}
// 返回最新的auto_increment列的自增长的值
public function insert_id() {
return mysql_insert_id($this->conn);
}
}
class mysql extends db {
private static $ins = NULL;
private $conn = NULL;
private $conf = array();
protected function __construct() {
$this->conf = conf::getIns();
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
$this->select_db($this->conf->db);
$this->setChar($this->conf->char);
}
public function __destruct() {
}
public static function getIns() {
if(!(self::$ins instanceof self)) {
self::$ins = new self();
}
return self::$ins;
}
public function connect($h,$u,$p) {
$this->conn = mysql_connect($h,$u,$p);
if(!$this->conn) {
$err = new Exception('连接失败');
throw $err;
}
}
protected function select_db($db) {
$sql = 'use ' . $db;
$this->query($sql);
}
protected function setChar($char) {
$sql = 'set names ' . $char;
return $this->query($sql);
}
public function query($sql) {
$rs = mysql_query($sql,$this->conn);
log::write($sql);
return $rs;
}
public function autoExecute($table,$arr,$mode='insert',$where = ' where 1 limit 1') {
/* insert into tbname (username,passwd,email) values ('',)
/// 把所有的键名用','接起来
// implode(',',array_keys($arr));
// implode("','",array_values($arr));
*/
if(!is_array($arr)) {
return false;
}
if($mode == 'update') {
$sql = 'update ' . $table .' set ';
foreach($arr as $k=>$v) {
$sql .= $k . "='" . $v ."',";
}
$sql = rtrim($sql,',');
$sql .= $where;
return $this->query($sql);
}
$sql = 'insert into ' . $table . ' (' . implode(',',array_keys($arr)) . ')';
$sql .= ' values (\'';
$sql .= implode("','",array_values($arr));
$sql .= '\')';
return $this->query($sql);
}
public function getAll($sql) {
$rs = $this->query($sql);
$list = array();
while($row = mysql_fetch_assoc($rs)) {
$list[] = $row;
}
return $list;
}
public function getRow($sql) {
$rs = $this->query($sql);
return mysql_fetch_assoc($rs);
}
public function getOne($sql) {
$rs = $this->query($sql);
$row = mysql_fetch_row($rs);
return $row[0];
}
// 返回影响行数的函数
public function affected_rows() {
return mysql_affected_rows($this->conn);
}
// 返回最新的auto_increment列的自增长的值
public function insert_id() {
return mysql_insert_id($this->conn);
}
}
相关文章推荐
- 深入理解Oracle 的并行执行
- 17 Automatic SQL Tuning
- mysql不支持full join的另一种解决办法 和根据多个表中的相同分组来连接查询
- 无法启动mysql服务,错误1067
- sql server 用户and角色笔记
- 点击scrollview里面的按钮更换tableview的内容(tableview内容来自sqlite3) iOS
- SQL Server 中关于EXCEPT和INTERSECT的用法
- Oracle并行详解
- 95.Oracle数据库SQL开发之 修改表内存——查询闪回
- 94.Oracle数据库SQL开发之 修改表内存——数据库事务的SERIALIZABLE事务
- 93.Oracle数据库SQL开发之 修改表内存——数据库事务的事务隔离级别
- 92.Oracle数据库SQL开发之 修改表内存——数据库事务的事务锁
- 91.Oracle数据库SQL开发之 修改表内存——数据库事务的并发事务
- 90.Oracle数据库SQL开发之 修改表内存——数据库事务的ACID特性
- Oracle 特殊字符模糊查询的方法
- 89.Oracle数据库SQL开发之 修改表内存——数据库事务的保存点
- 88.Oracle数据库SQL开发之 修改表内存——数据库事务的开始和结束
- 87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚
- 86.Oracle数据库SQL开发之 修改表内存——使用MERGE合并行
- 85.Oracle数据库SQL开发之 修改表内存——使用默认值