mysql类
2015-11-05 16:22
411 查看
<?php header("Content-type:text/html;charset=utf-8"); defined("ACC") || exit("非法访问"); class mysql extends abssql { protected $host; protected $user; protected $pwd; protected $port; protected $conn; protected $db; protected static $ins=null; protected $errorTxt; public static function getIns($h,$u,$p,$port=3306,$db){ if (self::$ins == null) { # code... self::$ins = new self($h,$u,$p,$port=3306,$db); } return self::$ins; } protected function __construct($h,$u,$p,$port=3306,$db){ $this->host=$h; $this->user=$u; $this->pwd=$p; $this->port=$port; $this->db=$db; $this->connect(); $this->selectDb(); $this->setChar(); } //链接数据库 public function connect(){ $this->conn = mysql_connect($this->host,$this->user,$this->pwd,$this->port); if ( !$this->conn ) { $this->errorTxt = "数据库链接失败"; $this->log(); } } public function query($sql){ try { $this->conn; } catch (Exception $e) { $this->errorTxt = "The false message is:".$e->getMessage(); $this->log(); } $this->errorTxt = $sql; $this->log(); $rs = mysql_query($sql,$this->conn); if( !$rs ){ $this->errorTxt = "The false message is: mysql_query失败"; $this->log(); } return $rs; } public function selectDb(){ $sql = 'use '.$this->db; $this->query($sql); } public function setChar(){ $sql = 'set names utf8'; $this->query($sql); } //得到一个二维数组 public function getAll($sql){ $rs = $this->query($sql); if (!$rs) { # code... $this->errorTxt = mysql_error(); $this->log(); return false; } $list = array(); while($row = mysql_fetch_array($rs)){ $list[] = $row; } return $list; } // 得到一个一维数组 public function getRow($sql){ $rs = $this->query($sql); if (!$rs) { $this->errorTxt = mysql_error(); $this->log(); return false; } $row = mysql_fetch_assoc($rs); return $row; } //得到一个整型或者字符串 public function getOne($sql){ $rs = $this->query($sql); if (!$rs) { $this->errorTxt = mysql_error(); $this->log(); return false; } $one = mysql_fetch_row($rs); return $one[0]; } //影响行数 public function affect_rows(){ return mysql_affected_rows($this->conn); } // 上一次插入的id public function last_insert_id(){ return mysql_insert_id($this->conn); } /** * 返回表中最大id号码 * parm: table ,字段id名称 * return int */ public function maxId($table,$col_name){ $sql = "select max($col_name) from $table"; return $this->getOne($sql); } //日志 public function log(){ $filename = ROOT.'data/log/log.txt'; if( !is_dir(dirname($filename)) ){ mkdir(dirname($filename),0777,true); } if( filesize($filename)>=1024*1024 ){ $this->bak($filename); } $logFile = fopen($filename, "a+") or die("Unable to open file!"); $time=time(); $txt = "时间:".date("Y-m-d H:i:s",$time)."\n".$this->errorTxt."\n"; fwrite($logFile, $txt); fclose($logFile); // 销毁文件资源句柄变量 unset($logFile); } /** * 备份日志 * param $filename * return file */ public function bak($filename){ $newname = ROOT.'data/log/'.date('Ymdhis').'.bak'; if(!rename($filename, $newname)){ return $filename; } return $newname; } /** * number_row() * 返回数据库中行的数目 * parm * return Int */ public function number_rows($result){ return mysql_num_rows($result); } //自动拼接sql public function autoExcu($data,$table,$act='insert',$where=''){ //return implode(',', array_keys($data)); //return implode('\',\'', array_values($data)); if($act == 'insert'){ //$sql = "insert into xxtable(id,username,gender) values('3','liubei','man')"; $sql = " insert into "; $sql .= $table.'('; $sql .= implode(',', array_keys($data)); $sql .= ' ) values( '; $sql .= '\''.implode('\',\'', array_values($data)).'\')'; }else if($act == 'update'){ //updata xxtable set username='liubei',gender='man' where 'id=4'; if(!$where){ return false; } $sql = ' update '; $sql .= $table; $sql .= ' set '; foreach($data as $k=>$v){ $sql .= $k; $sql .= '='; $sql .= "'$v'"; $sql .= ','; } $sql = rtrim($sql,','); $sql .= ' where '; $sql .= $where; }else{ return false; } return $sql; } } ?>
相关文章推荐
- MYSQL数据库备份与恢复
- MySQL error log配置及管理
- 如何在MySQL中设置外键约束以及外键的作用
- MySQL JDBC驱动 - 01 - Class.forName
- MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
- mysql 添加用户 可以远程访问
- Mysql自增异常
- MYSQL my_print_defaults程序解析
- mysql外链接查询
- mysql 重置 root 密码
- mysql 二进制日志恢复
- mysql 历史数据表迁移方案
- 转 mysql中int、bigint、smallint 和 tinyint的区别与长度的含义
- MySQL简单安全管理和故障排查
- Mysql 查询实现成绩排名,相同分数名次相同,类似于rank()函数
- mysql多表查询二内链接
- MySQLi实现数据库操作的预处理
- 一、源码安装mysql5.6-单实例
- MySQL配置文件my.cnf中各【】块解释
- mysqlbinlog使用