亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

一款簡單實用的php操作mysql數據庫類

2020-03-22 20:05:20
字體:
來源:轉載
供稿:網友
本文實例講述了一款簡單實用的php操作mysql數據庫類。分享給大家供大家參考。具體如下:復制代碼 代碼如下:
/*
本款數據庫連接類,他會自動加載sql防注入功能,過濾一些敏感的sql查詢關鍵詞,同時還可以增加判斷字段 show table status的性質與show table類 獲取數據庫所有表名等。*/
@ini_set('mysql.trace_mode','off');
html' target='_blank'>class mysql
{
public $dblink;
public $pconnect;
private $search = array('/union(s*(/*.**/) s*)+select/i', '/load_file(s*(/*.**/) s*)+(/i', '/into(s*(/*.**/) s*)+outfile/i');
private $replace = array('union select', 'load_file (', 'into outfile');
private $rs;

function __construct($hostname,$username,$userpwd,$database,$pconnect=false,$charset='utf8')
{
define('allowed_htmltags', ' html embed title meta body a p br hr h1 h2 h3 h4 h5 h6 font u i b strong div span ol ul li img table tr td map
$this- pconnect=$pconnect;
$this- dblink=$pconnect mysql_pconnect($hostname,$username,$userpwd):mysql_connect($hostname,$username,$userpwd);
(!$this- dblink||!is_resource($this- dblink)) && fatal_error("connect to the database unsuccessfully!");
@mysql_unbuffered_query("set names {$charset}");
if($this- version() '5.0.1')
{
@mysql_unbuffered_query("set sql_mode = ''");
}
@mysql_select_db($database) or fatal_error("can not select table!");
return $this- dblink;
}

function query($sql,$unbuffered=false)
{
//echo $sql.' br
$this- rs=$unbuffered mysql_unbuffered_query($sql,$this- dblink):mysql_query($sql,$this- dblink);
//(!$this- rs||!is_resource($this- rs)) && fatal_error("execute the query unsuccessfully! error:".mysql_error());
if(!$this- rs)fatal_error('在執行sql語句 '.$sql.' 時發生以下錯誤:'.mysql_error());
return $this-
}

function fetch_one($sql)
{
$this- rs=$this- query($sql);
return dircms_strips教程lashes($this- filter_pass(mysql_fetch_array($this- rs,mysql_assoc)));
}

function get_maxfield($filed='id',$table) // 獲取$table表中$filed字段的最大值
{
$r=$this- fetch_one("select {$table}.{$filed} from `{$table}` order by `{$table}`.`{$filed}` desc limit 0,1");
return $r[$filed];
}

function fetch_all($sql)
{
$this- rs=$this- query($sql);
$result=array();
while($rows=mysql_fetch_array($this- rs,mysql_assoc))
{
$result[]=$rows;
}

mysql_free_result($this-
return dircms_stripslashes($this- filter_pass($result));
}

function fetch_all_withkey($sql,$key='id')
{
$this- rs=$this- query($sql);
$result=array();
while($rows=mysql_fetch_array($this- rs,mysql_assoc))
{
$result[$rows[$key]]=$rows;
}

mysql_free_result($this-
return dircms_stripslashes($this- filter_pass($result));
}

function last_insert_id()
{
if(($insertid=mysql_insert_id($this- dblink)) 0)return $insertid;
else //如果 auto_increment 的列的類型是 bigint,則 mysql_insert_id() 返回的值將不正確.
{
$result=$this- fetch_one('select last_insert_id() as insertid');
return $result['insertid'];
}
}

function insert($tbname,$varray,$replace=false)
{
$varray=$this- escape($varray);
$tb_fields=$this- get_fields($tbname); // 升級一下,增加判斷字段是否存在

foreach($varray as $key = $value)
{
if(in_array($key,$tb_fields))
{
$fileds[]='`'.$key.'`';
$values[]=is_string($value) '''.$value.''':$value;
}
}

if($fileds)
{
$fileds=implode(',',$fileds);
$fileds=str_replace(''','`',$fileds);
$values=implode(',',$values);
$sql=$replace "replace into {$tbname}({$fileds}) values ({$values})":"insert into {$tbname}({$fileds}) values ({$values})";
$this- query($sql,true);
return $this- last_insert_id();
}
else return false;
}

function update($tbname, $array, $where = '')
{
$array=$this- escape($array);
if($where)
{
$tb_fields=$this- get_fields($tbname); // 增加判斷字段是否存在

$sql = '';
foreach($array as $k= $v)
{
if(in_array($k,$tb_fields))
{
$k=str_replace(''','',$k);
$sql .= ", `$k`='$v'";
}
}
$sql = substr($sql, 1);

if($sql)$sql = "update `$tbname` set $sql where $where";
else return true;
}
else
{
$sql = "replace into `$tbname`(`".implode('`,`', array_keys($array))."`) values('".implode("','", $array)."')";
}
return $this- query($sql,true);
}

function mysql_delete($tbname,$idarray,$filedname='id')
{
$idwhere=is_array($idarray) implode(',',$idarray):intval($idarray);
$where=is_array($idarray) "{$tbname}.{$filedname} in ({$idwhere})":" {$tbname}.{$filedname}={$idwhere}";

return $this- query("delete from {$tbname} where {$where}",true);
}

function get_fields($table)
{
$fields=array();
$result=$this- fetch_all("show columns from `{$table}`");
foreach($result as $val)
{
$fields[]=$val['field'];
}
return $fields;
}

function get_table_status($database)
{
$status=array();
$r=$this- fetch_all("show table status from `".$database."`"); /////// show table status的性質與show table類似,不過,可以提供每個表的大量信息。
foreach($r as $v)
{
$status[]=$v;
}
return $status;
}

function get_one_table_status($table)
{
return $this- fetch_one("show table status like '$table'");
}

function create_fields($tbname,$fieldname,$size=0,$type='varchar') // 2010-5-14 修正一下
{
if($size)
{
$size=strtoupper($type)=='varchar' $size:8;
$this- query("alter table `{$tbname}` add `$fieldname` {$type}( {$size} ) not null",true);
}
else $this- query("alter table `{$tbname}` add `$fieldname` mediumtext not null",true);
return true;
}

function get_tables() //獲取所有表表名
{
$tables=array();
$r=$this- fetch_all("show tables");
foreach($r as $v)
{
foreach($v as $v_)
{
$tables[]=$v_;
}
}
return $tables;
}

function create_model_table($tbname) //創建一個內容模型表(start:初始只有字段contentid int(20),用于內容表,/////////////////////// update:2010-5-20 默認加入`content` mediumtext not null,字段)
{
if(in_array($tbname,$this- get_tables())) return false; ///////////////////// 當表名已經存在時,返回 false
if($this- query("create table `{$tbname}` (
`contentid` mediumint(8) not null ,
`content` mediumtext not null,
key ( `contentid` )
) engine = myisam default charset=utf8",true))return true; //////////////////// 成功則返回 true
return false; //////////////失敗返回 false
}

function create_table($tbname) //創建一個會員模型空表(初始只有字段userid int(20),用于會員表,2010-4-26)
{
if(in_array($tbname,$this- get_tables())) return false;
if($this- query("create table `{$tbname}` (
`userid` mediumint(8) not null ,
key ( `userid` )
) engine = myisam default charset=utf8",true))return true;
return false;
}

function escape($str) // 過濾危險字符
{
if(!is_array($str)) return str_replace(array('n', 'r'), array(chr(10), chr(13)),mysql_real_escape_string(preg_replace($this- search,$this- replace, $str), $this- dblink));
foreach($str as $key= $val) $str[$key] = $this- escape($val);
return $str;
}

function filter_pass($string, $allowedtags = '', $disabledattributes = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavaible', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragdrop', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterupdate', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmoveout', 'onmouseo教程ver', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'))
{
if(is_array($string))
{
foreach($string as $key = $val) $string[$key] = $this- filter_pass($val, allowed_htmltags);
}
else
{
$string = preg_replace('/s('.implode('|', $disabledattributes).').* ([s ])/', '', preg_replace('/ (.* ) /ie', "' '.preg_replace(array('/網頁特效:[^"']*/i', '/(".implode('|', $disabledattributes).")[ ]*=[ ]*["'][^"']*["']/i', '/s+/'), array('', '', ' '), stripslashes('')) . ' '", strip_tags($string, $allowedtags)));
}
return $string;
}

function drop_table($tbname)
{
return $this- query("drop table if exists `{$tbname}`",true);
}

function version()
{
return mysql_get_server_info($this- dblink);
}
}
希望本文所述對大家的PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产欧美一区二区三区成人| 亚洲精品xxx| 中文字幕亚洲综合久久筱田步美| 国产91精品视频在线观看| 亚洲视频在线观看免费| 精品亚洲精品福利线在观看| 国产精品444| 日本免费在线精品| 欧美另类暴力丝袜| 黄色精品一区二区| 国内精品一区二区三区四区| 欧美日韩在线视频一区| 国产精品久久网| 日日狠狠久久偷偷四色综合免费| 国产精品99久久99久久久二8| 中文字幕一区二区精品| 日韩av中文字幕在线免费观看| 亚洲人精选亚洲人成在线| 欧美伊久线香蕉线新在线| 狠狠久久五月精品中文字幕| 国产视频福利一区| 亚洲精品国产品国语在线| 91精品视频一区| 国产精品草莓在线免费观看| 欧美日韩国产成人在线| 欧美性黄网官网| 亚洲福利在线视频| 91国产美女在线观看| 亚洲精品v欧美精品v日韩精品| 日本三级久久久| 日韩成人激情影院| 日韩精品在线观看一区| 国产精品爽爽ⅴa在线观看| 亚洲女在线观看| 国内精品国产三级国产在线专| 国产精品欧美一区二区三区奶水| 亚洲影院在线看| 国产精品福利无圣光在线一区| 日韩最新中文字幕电影免费看| 日韩女优人人人人射在线视频| 色偷偷88888欧美精品久久久| 日韩经典中文字幕在线观看| 国产成+人+综合+亚洲欧洲| 国产精品成人观看视频国产奇米| 亚洲激情在线观看视频免费| 综合国产在线视频| 38少妇精品导航| 欧美理论电影在线播放| 日韩中文字幕亚洲| 国产精品观看在线亚洲人成网| 久久综合免费视频| 亚洲韩国日本中文字幕| 国产精品激情av电影在线观看| 久久久人成影片一区二区三区| 久久天堂av综合合色| 国产午夜精品全部视频播放| 一本色道久久综合狠狠躁篇的优点| 欧美午夜片欧美片在线观看| 欧美国产一区二区三区| 91po在线观看91精品国产性色| 久久激情视频免费观看| 国产欧美精品在线| 欧美一区三区三区高中清蜜桃| 亚洲激情视频在线| 伦伦影院午夜日韩欧美限制| 日本精品免费一区二区三区| 久久国产精彩视频| 久久久久久久久久久久久久久久久久av| 国产一区二区三区视频在线观看| 亚洲国产91精品在线观看| 国产成人高清激情视频在线观看| 亚洲少妇中文在线| 成人精品视频99在线观看免费| 久久这里只有精品视频首页| 亚洲精品之草原avav久久| 欧美黑人巨大精品一区二区| 疯狂欧美牲乱大交777| 亚洲欧美日韩直播| 久久在线观看视频| 国产精品美女无圣光视频| 精品国产91乱高清在线观看| 日韩久久精品电影| 亚洲欧美国产精品| 91性高湖久久久久久久久_久久99| 欧美激情综合色综合啪啪五月| 成人欧美在线视频| 国产精品aaa| 中文在线资源观看视频网站免费不卡| 国产精品96久久久久久又黄又硬| 久久99亚洲精品| 日韩中文字幕久久| 国产精品v片在线观看不卡| 成人免费午夜电影| 日韩av快播网址| 国产精品美女视频网站| 精品国产依人香蕉在线精品| 538国产精品一区二区免费视频| 亚洲国产精品中文| 免费99精品国产自在在线| 91精品视频在线播放| 亚洲护士老师的毛茸茸最新章节| 久久精品小视频| 国产成人精彩在线视频九色| 久久久久久久电影一区| 国产一区二区视频在线观看| 国内精品久久久久影院优| 国产精品自产拍高潮在线观看| 久久久久久久成人| 成人h片在线播放免费网站| 精品美女久久久久久免费| 亚洲欧美中文字幕在线一区| 日韩精品在线视频观看| 国产精品免费一区豆花| 国产精品日韩欧美| 日韩国产欧美精品在线| 国产在线拍揄自揄视频不卡99| 九九热最新视频//这里只有精品| 高清日韩电视剧大全免费播放在线观看| 日韩av在线免费观看| 日韩精品免费综合视频在线播放| 国产精品久久久久久久久久久久久| 久久精品国产综合| 韩国美女主播一区| 久久6免费高清热精品| 亚洲一区二区福利| 国产精品自产拍在线观看| 91高清视频在线免费观看| 欧美精品video| 91久久精品国产91性色| 久久久精品一区二区三区| 91精品国产自产91精品| 午夜免费久久久久| 国产亚洲欧美日韩一区二区| 欧美激情精品久久久久久久变态| 久久久久久com| 成人美女av在线直播| 中国人与牲禽动交精品| 精品久久久999| 日韩电影中文字幕在线| 日韩电影免费观看中文字幕| 欧美激情a在线| 亚洲午夜未删减在线观看| 亚洲精品免费网站| 中文字幕亚洲色图| 国产不卡av在线免费观看| 日本久久久久久| 久久久久久com| 69视频在线播放| 在线免费观看羞羞视频一区二区| 日韩中文字幕视频在线| 久久影视电视剧免费网站清宫辞电视| 午夜伦理精品一区| 91社区国产高清| 97国产suv精品一区二区62| 国产精品6699| 国产一区二区三区精品久久久| 在线看片第一页欧美| 久久噜噜噜精品国产亚洲综合| 国内精品视频一区| 国产91精品视频在线观看| 亚洲肉体裸体xxxx137| 青草成人免费视频| 黑丝美女久久久| 久久中文字幕在线|