从一个不错的留言本弄的mysql数据库操作类

  从一个不错的留言本弄的mysql数据库操作类,初学php的朋友可以参考下

  

复制代码 代码如下:

  <?php

  class mysql{

  var $querynum = 0;

  function connect($dbhost, $dbuser, $dbpw, $dbname = '',$dbcharset='') {

  if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {

  $this->show('Can not connect to MySQL server');

  return false;

  }

  if($dbname) {

  $this->select_db($dbname);

  }

  if($this->version() > '4.1' && $dbcharset) {

  $this->query("SET NAMES '".$dbcharset."'");

  }

  return true;

  }

  function select_db($dbname) {

  return mysql_select_db($dbname);

  }

  function fetch_array($query, $result_type = MYSQL_ASSOC) {

  return @mysql_fetch_array($query, $result_type);

  }

  function query($sql, $type = '') {

  if(!($query = mysql_query($sql))) $this->show('MySQL Query Error', $sql);

  $this->querynum++;

  return $query;

  }

  function affected_rows() {

  return mysql_affected_rows();

  }

  function result($query, $row) {

  return mysql_result($query, $row);

  }

  function num_rows($query) {

  return @mysql_num_rows($query);

  }

  function num_fields($query) {

  return mysql_num_fields($query);

  }

  function free_result($query) {

  return mysql_free_result($query);

  }

  function insert_id() {

  return mysql_insert_id();

  }

  function fetch_row($query) {

  return mysql_fetch_row($query);

  }

  function version() {

  return mysql_get_server_info();

  }

  function close() {

  return mysql_close();

  }

  function error() {

  return mysql_error();

  }

  function show($message = '', $sql = '') {

  if(!$sql) echo $message;

  else echo $message.'<br>'.$sql.'<br>'.$this->error();

  }

  }

  class page extends mysql{

  function pagination($sql,$maxnum,$page,$maxpages,$pagepre,$ext=''){

  global $sum,$stail,$link,$lmid,$ltail,$curpage;//$ext='&class=3'

  $SELF = $_SERVER['PHP_SELF'];

  $query = $this->query($sql);

  $rows = $this->fetch_array($query,MYSQL_NUM);

  $totalrows = $rows[0];

  $totalpages = ceil($totalrows/$maxnum);

  $startnum = ($page - 1)*$maxnum;

  $string = $sum.$totalrows.$stail.$sum.$page."/".$totalpages.$stail;

  if($page != 1){

  $string .= $link.$SELF."?page=1".$ext.$lmid."|‹".$ltail;

  $string .=  $link.$SELF.'?page='.($page - 1).$ext.$lmid."‹‹".$ltail;

  }

  if($maxpages>=$totalpages){

  $pgstart = 1;$pgend = $totalpages;

  }

  elseif(($page-$pagepre-1+$maxpages)>$totalpages){

  $pgstart = $totalpages - $maxpages + 1;

  $pgend = $totalpages;

  }

  else{

  $pgstart=(($page<=$pagepre)?1:($page-$pagepre));

  $pgend=(($pgstart==1)?$maxpages:($pgstart+$maxpages-1));

  }

  for($pg=$pgstart;$pg<=$pgend;$pg++){

  if($pg == $page){

  $string .=  $curpage.$SELF."?page=".$pg.$ext.$lmid.$pg.$ltail;

  }

  else $string .=  $link.$SELF."?page=".$pg.$ext.$lmid.$pg.$ltail;

  }

  if($page != $totalpages){

  $string .=  $link.$SELF.'?page='.($page + 1).$ext.$lmid."››".$ltail;

  $string .=  $link.$SELF.'?page='.$totalpages.$ext.$lmid."›|".$ltail;

  }

  return $string;

  }

  }

  function html($str,$allowhtml=0){

  $str = get_magic_quotes_gpc()?$str:addslashes($str);

  if(!$allowhtml){$str = htmlspecialchars($str);}

  return $str;

  }

  function dehtml($str,$allowhtml=0){

  $str = stripslashes($str);

  if(!$allowhtml){$str = nl2br($str);}

  return $str;

  }

  function deip($str){

  $arr = explode('.',$str);

  $str = $arr[0].'.'.$arr[1].'.'.$arr[2].'.*';

  return $str;

  }

  function setting($login=false){

  global $db,$mydbpre;

  if($login) $sql = "select * from {$mydbpre}setting";

  else $sql = "select * from {$mydbpre}setting where keyword != 'username' and keyword != 'password'";

  $query = $db->query($sql);

  while($row = $db->fetch_array($query)){

  $arr[$row['keyword']] = $row['val'];

  if($row['keyword'] == 'name') $arr['title'] = $row['val'].' - Powered by PHPfans';

  }

  return $arr;

  }

  function checkcontent($content){

  global $db,$mydbpre,$mearr;

  $arrword = $arrip = array();

  $sql = "select * from {$mydbpre}ban where b_type != 0";

  $query = $db->query($sql);

  while($row = $db->fetch_array($query)){

  if($row['b_type'] == 1) $arrword[] = $row['b_val'];

  elseif($row['b_type'] == 2) $arrip[] = $row['b_reval'];

  }

  foreach($arrip as $value){

  $value = preg_quote($value,'/');

  $value = str_replace('\*','\d{1,3}',$value);

  if(preg_match('/^('.$value.')$/',$_SERVER['REMOTE_ADDR'])){

  showmessage($mearr[8],'index.php');

  }

  }

  foreach($arrword as $val){

  $val = preg_quote($val,'/');

  if(preg_match('/'.$val.'/',$content)){

  showmessage($mearr[7],'index.php');

  }

  }

  }

  function replaceword($content){

  global $db,$mydbpre;

  $sql = "select * from {$mydbpre}ban where b_type = 0";

  $query = $db->query($sql);

  while($row = $db->fetch_array($query)){

  $content = str_replace($row['b_val'],$row['b_reval'],$content);

  }

  return $content;

  }

  function showadmin($message,$referer=''){

  $str = '';

  if($referer != '') $str .= '<meta http-equiv="refresh" content="2;URL='.$referer.'" />';

  $str .= '

  <table width="45%" align="center" style="border:1px solid #eeeeee; margin-top:50px;">

  <tr bgcolor="#CCCCCC">

  <td height="25">信息提示</td>

  </tr>

  <tr align="center">

  <td style="padding:10px 0 10px 0">'.$message;

  if($referer != '') $str .= '<br />

  <br />

  <a href="'.$referer.'">如果你的页面没有跳转,请点这里</a>';

  $str .= '

  </td>

  </tr>

  </table>';

  echo $str;

  exit;

  }

  function showmessage($message,$referer=''){

  global $setting,$db;

  $start = gettime();

  echo <<<EOT

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  <html>

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=gbk" />

  <title>php爱好者留言簿_提示信息</title>

  <link type="text/css" href="guest.css" rel="stylesheet">

  EOT;

  if($referer != '') echo '<meta http-equiv="Refresh" content="2;URL='.$referer.'" />';

  echo <<<EOT

  </head>

  <body>

  <center>

  EOT;

  require_once('header.html');

  echo <<<EOT

  <div class="message">

  <h1>php爱好者留言簿 提示信息</h1>

  {$message}

  EOT;

  if($referer != ''){

  echo <<<EOT

  <br />

  <a href="{$referer}">如果您的浏览器没有自动跳转,请点击这里</a>

  </div>

  EOT;

  }

  require_once('footer.html');

  echo <<<EOT

  </center>

  </body>

  </html>

  EOT;

  exit;

  }

  function gettime()

  {

  $t = explode(" ",microtime());

  return $t[1] + $t[0];

  }

  function checklogin($exit=true){

  if(!isset($_COOKIE['islogin']) || $_COOKIE['islogin'] != 1){

  if($exit) {

  echo "请先登陆,谢谢。";

  exit;

  }

  }

  else setcookie('islogin',1,time()+60*20);

  }

  ?>