php mysql 封装类实例代码
废话不多说了,具体代码如下所示:
<?php classmysql{ private$db_host;//数据库主机 private$db_user;//数据库用户名 private$db_pwd;//数据库用户名密码 private$db_database;//数据库名 private$conn;//数据库连接标识; private$result;//执行query命令的结果资源标识 private$sql;//sql执行语句 private$row;//返回的条目数 private$coding;//数据库编码,GBK,UTF8,gb2312 private$bulletin=true;//是否开启错误记录 private$show_error=false;//测试阶段,显示所有错误,具有安全隐患,默认关闭 private$is_error=false;//发现错误是否立即终止,默认true,建议不启用,因为当有问题时用户什么也看不到是很苦恼的 /*构造函数*/ publicfunction__construct($db_host,$db_user,$db_pwd,$db_database,$conn,$coding){ $this->db_host=$db_host; $this->db_user=$db_user; $this->db_pwd=$db_pwd; $this->db_database=$db_database; $this->conn=$conn; $this->coding=$coding; $this->connect(); } /*数据库连接*/ publicfunctionconnect(){ if($this->conn=="pconn"){ //永久链接 $this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd); }else{ //即使链接 $this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd); } if(!mysql_select_db($this->db_database,$this->conn)){ if($this->show_error){ $this->show_error("数据库不可用:",$this->db_database); } } mysql_query("SETNAMES$this->coding"); } /*数据库执行语句,可执行查询添加修改删除等任何sql语句*/ publicfunctionquery($sql){ if($sql==""){ $this->show_error("SQL语句错误:","SQL查询语句为空"); } $this->sql=$sql; $result=mysql_query($this->sql,$this->conn); if(!$result){ //调试中使用,sql语句出错时会自动打印出来 if($this->show_error){ $this->show_error("错误SQL语句:",$this->sql); } }else{ $this->result=$result; } return$this->result; } /*创建添加新的数据库*/ publicfunctioncreate_database($database_name){ $database=$database_name; $sqlDatabase='createdatabase'.$database; $this->query($sqlDatabase); } /*查询服务器所有数据库*/ //将系统数据库与用户数据库分开,更直观的显示? publicfunctionshow_databases(){ $this->query("showdatabases"); echo"现有数据库:".$amount=$this->db_num_rows($rs); echo"<br/>"; $i=1; while($row=$this->fetch_array($rs)){ echo"$i$row[Database]"; echo"<br/>"; $i++; } } //以数组形式返回主机中所有数据库名 publicfunctiondatabases(){ $rsPtr=mysql_list_dbs($this->conn); $i=0; $cnt=mysql_num_rows($rsPtr); while($i<$cnt){ $rs[]=mysql_db_name($rsPtr,$i); $i++; } return$rs; } /*查询数据库下所有的表*/ publicfunctionshow_tables($database_name){ $this->query("showtables"); echo"现有数据库:".$amount=$this->db_num_rows($rs); echo"<br/>"; $i=1; while($row=$this->fetch_array($rs)){ $columnName="Tables_in_".$database_name; echo"$i$row[$columnName]"; echo"<br/>"; $i++; } } /* mysql_fetch_row()array$row[0],$row[1],$row[2] mysql_fetch_array()array$row[0]或$row[id] mysql_fetch_assoc()array用$row->content字段大小写敏感 mysql_fetch_object()object用$row[id],$row[content]字段大小写敏感 */ /*取得结果数据*/ publicfunctionmysql_result_li(){ returnmysql_result($str); } /*取得记录集,获取数组-索引和关联,使用$row['content']*/ publicfunctionfetch_array($resultt=""){ if($resultt<>""){ returnmysql_fetch_array($resultt); }else{ returnmysql_fetch_array($this->result); } } //获取关联数组,使用$row['字段名'] publicfunctionfetch_assoc(){ returnmysql_fetch_assoc($this->result); } //获取数字索引数组,使用$row[0],$row[1],$row[2] publicfunctionfetch_row(){ returnmysql_fetch_row($this->result); } //获取对象数组,使用$row->content publicfunctionfetch_Object(){ returnmysql_fetch_object($this->result); } //简化查询select publicfunctionfindall($table){ $this->query("SELECT*FROM$table"); } //简化查询select publicfunctionselect($table,$columnName="*",$condition='',$debug=''){ $condition=$condition?'Where'.$condition:NULL; if($debug){ echo"SELECT$columnNameFROM$table$condition"; }else{ $this->query("SELECT$columnNameFROM$table$condition"); } } //简化删除del publicfunctiondelete($table,$condition,$url=''){ if($this->query("DELETEFROM$tableWHERE$condition")){ if(!empty($url)) $this->Get_admin_msg($url,'删除成功!'); } } //简化插入insert publicfunctioninsert($table,$columnName,$value,$url=''){ if($this->query("INSERTINTO$table($columnName)VALUES($value)")){ if(!empty($url)) $this->Get_admin_msg($url,'添加成功!'); } } //简化修改update publicfunctionupdate($table,$mod_content,$condition,$url=''){ //echo"UPDATE$tableSET$mod_contentWHERE$condition";exit(); if($this->query("UPDATE$tableSET$mod_contentWHERE$condition")){ if(!empty($url)) $this->Get_admin_msg($url); } } /*取得上一步INSERT操作产生的ID*/ publicfunctioninsert_id(){ returnmysql_insert_id(); } //指向确定的一条数据记录 publicfunctiondb_data_seek($id){ if($id>0){ $id=$id-1; } if(!@mysql_data_seek($this->result,$id)){ $this->show_error("SQL语句有误:","指定的数据为空"); } return$this->result; } //根据select查询结果计算结果集条数 publicfunctiondb_num_rows(){ if($this->result==null){ if($this->show_error){ $this->show_error("SQL语句错误","暂时为空,没有任何内容!"); } }else{ returnmysql_num_rows($this->result); } } //根据insert,update,delete执行结果取得影响行数 publicfunctiondb_affected_rows(){ returnmysql_affected_rows(); } //输出显示sql语句 publicfunctionshow_error($message="",$sql=""){ if(!$sql){ echo"<fontcolor='red'>".$message."</font>"; echo"<br/>"; }else{ echo"<fieldset>"; echo"<legend>错误信息提示:</legend><br/>"; echo"<divstyle='font-size:14px;clear:both;font-family:Verdana,Arial,Helvetica,sans-serif;'>"; echo"<divstyle='height:20px;background:#000000;border:1px#000000solid'>"; echo"<fontcolor='white'>错误号:12142</font>"; echo"</div><br/>"; echo"错误原因:".mysql_error()."<br/><br/>"; echo"<divstyle='height:20px;background:#FF0000;border:1px#FF0000solid'>"; echo"<fontcolor='white'>".$message."</font>"; echo"</div>"; echo"<fontcolor='red'><pre>".$sql."</pre></font>"; $ip=$this->getip(); if($this->bulletin){ $time=date("Y-m-dH:i:s"); $message=$message."\r\n$this->sql"."\r\n客户IP:$ip"."\r\n时间:$time"."\r\n\r\n"; $server_date=date("Y-m-d"); $filename=$server_date.".txt"; $file_path="error/".$filename; $error_content=$message; //$error_content="错误的数据库,不可以链接"; $file="error";//设置文件保存目录 //建立文件夹 if(!file_exists($file)){ if(!mkdir($file,0777)){ //默认的mode是0777,意味着最大可能的访问权 die("uploadfilesdirectorydoesnotexistandcreationfailed"); } } //建立txt日期文件 if(!file_exists($file_path)){ //echo"建立日期文件"; fopen($file_path,"w+"); //首先要确定文件存在并且可写 if(is_writable($file_path)){ //使用添加模式打开$filename,文件指针将会在文件的开头 if(!$handle=fopen($file_path,'a')){ echo"不能打开文件$filename"; exit; } //将$somecontent写入到我们打开的文件中。 if(!fwrite($handle,$error_content)){ echo"不能写入到文件$filename"; exit; } //echo"文件$filename写入成功"; echo"——错误记录被保存!"; //关闭文件 fclose($handle); }else{ echo"文件$filename不可写"; } }else{ //首先要确定文件存在并且可写 if(is_writable($file_path)){ //使用添加模式打开$filename,文件指针将会在文件的开头 if(!$handle=fopen($file_path,'a')){ echo"不能打开文件$filename"; exit; } //将$somecontent写入到我们打开的文件中。 if(!fwrite($handle,$error_content)){ echo"不能写入到文件$filename"; exit; } //echo"文件$filename写入成功"; echo"——错误记录被保存!"; //关闭文件 fclose($handle); }else{ echo"文件$filename不可写"; } } } echo"<br/>"; if($this->is_error){ exit; } } echo"</div>"; echo"</fieldset>"; echo"<br/>"; } //释放结果集 publicfunctionfree(){ @mysql_free_result($this->result); } //数据库选择 publicfunctionselect_db($db_database){ returnmysql_select_db($db_database); } //查询字段数量 publicfunctionnum_fields($table_name){ //returnmysql_num_fields($this->result); $this->query("select*from$table_name"); echo"<br/>"; echo"字段数:".$total=mysql_num_fields($this->result); echo"<pre>"; for($i=0;$i<$total;$i++){ print_r(mysql_fetch_field($this->result,$i)); } echo"</pre>"; echo"<br/>"; } //取得MySQL服务器信息 publicfunctionmysql_server($num=''){ switch($num){ case1: returnmysql_get_server_info();//MySQL服务器信息 break; case2: returnmysql_get_host_info();//取得MySQL主机信息 break; case3: returnmysql_get_client_info();//取得MySQL客户端信息 break; case4: returnmysql_get_proto_info();//取得MySQL协议信息 break; default: returnmysql_get_client_info();//默认取得mysql版本信息 } } //析构函数,自动关闭数据库,垃圾回收机制 publicfunction__destruct(){ if(!empty($this->result)){ $this->free(); } mysql_close($this->conn); }//function__destruct(); /*获得客户端真实的IP地址*/ functiongetip(){ if(getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")){ $ip=getenv("HTTP_CLIENT_IP"); }else if(getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")){ $ip=getenv("HTTP_X_FORWARDED_FOR"); }else if(getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"),"unknown")){ $ip=getenv("REMOTE_ADDR"); }else if(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],"unknown")){ $ip=$_SERVER['REMOTE_ADDR']; }else{ $ip="unknown"; } return($ip); } functioninject_check($sql_str){//防止注入 $check=eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str); if($check){ echo"输入非法注入内容!"; exit(); }else{ return$sql_str; } } functioncheckurl(){//检查来路 if(preg_replace("/https?:\/\/([^\:\/]+).*/i","\\1",$_SERVER['HTTP_REFERER'])!==preg_replace("/([^\:]+).*/","\\1",$_SERVER['HTTP_HOST'])){ header("Location:http://www.dareng.com"); exit(); } } } ?>
以上所述是小编给大家介绍的phpmysql封装类实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对毛票票网站的支持!