您的位置:首页 > 数据库 > MySQL

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;
}

}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: