欢迎来到山村网

PHP的数据库操作类

2019-03-02 11:42:35浏览:666 来源:山村网   
核心摘要:  $db = newmysql($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding);  class mysql{  private $db_host;

  $db = new mysql($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding);

  class mysql{

  private $db_host;

  private $db_user;

  private $db_password;

  private $db_table;

  private $db_conn; //数据库连接标识;

  private $result; //执行query命令的结果资源标识

  private $sql; //sql执行语句

  private $pre; //数据库表前缀

  private $coding; //数据库编码,GBK,UTF8,gb2312

  function __construct($db_host,$db_user,$db_password,$db_table,$db_conn,$pre,$coding){

  $this->db_host = $db_host;

  $this->db_user = $db_user;

  $this->db_password = $db_password;

  $this->db_table = $db_table;

  $this->db_conn = $db_conn;

  $this->pre = $pre;

  $this->coding = $coding;

  $this->connect();

  }

  function connect(){

  $this->db_conn = @mysql_connect($this->db_host,$this->db_user,$this->db_password) or die($this->show_error("数据库链接错误,请检查数据库链接配置!"));

  if(!mysql_select_db($this->db_table,$this->db_conn)){

  echo "没有找到数据表:".$this->db_table;

  }

  mysql_select_db($this->db_table,$this->db_conn);

  $this->query("SET NAMES $this->coding");

  }

  

  function query($sql){

  if(emptyempty($sql)){

  $this->show_error("你的sql语句不能为空!");

  }else{

  $this->sql = $sql;

  }

  $result = mysql_query($this->sql,$this->db_conn);

  return $this->result = $result;

  }

  

  public function create_database($database_name){

  $database=$database_name;

  $sqlDatabase = 'create database '.$database;

  return $this->query($sqlDatabase);

  }

  // 根据select查询结果计算结果集条数

  public function db_num_rows(){

  if($this->result==null){

  if($this->show_error){

  $this->show_error("sql语句错误!");

  }

  }else{

  return mysql_num_rows($this->result);

  }

  }

  

  //将系统数据库与用户数据库分开,更直观的显示?

  public function show_databases(){

  $this->query("show databases");

  echo "现有数据库:".$amount =$this->db_num_rows($rs);

  echo "";

  $i=1;

  while($row = $this->fetch_array($rs)){

  echo "$i $row[Database]";

  echo "";

  $i++;

  }

  }

  //以数组形式返回主机中所有数据库名

  public function databases()

  {

  $rsPtr=mysql_list_dbs($this->db_conn);

  $i=0;

  $cnt=mysql_num_rows($rsPtr);

  while($i<$cnt)

  {

  $rs[]=mysql_db_name($rsPtr,$i);

  $i++;

  }

  return print_r($rs);

  }

  

  function show_tables($database_name){

  $this->query("show tables");

  echo "现有数据库:".$amount = $this->db_num_rows($rs);

  echo "";

  $i=1;

  while($row = $this->fetch_array($rs)){

  $columnName="Tables_in_".$database_name;

  echo "$i $row[$columnName]";

  echo "";

  $i++;

  }

  }

  

  

  public function fetch_array()

  {

  return @mysql_fetch_array($this->result);

  }

  //获取关联数组,使用$row['字段名']

  public function fetch_ass()

  {

  return @mysql_fetch_assoc($this->result);

  }

  //获取数字索引数组,使用$row[0],$row[1],$row[2]

  public function fetch_row()

  {

  return @mysql_fetch_row($this->result);

  }

  //获取对象数组,使用$row->content

  public function fetch_Object()

  {

  return @mysql_fetch_object($this->result);

  }

  //简化查询select

  public function findall($table){

  $table = $this->fulltablename($table);

  $this->query("select * from $table");

  }

  public function select($table,$columnName,$condition){

  $table = $this->fulltablename($table);

  if(emptyempty($columnName)){

  $columnName = "*";

  }

  $this->query("SELECT $columnName FROM $table $condition");

  }

  //简化的insert

  function insert($table,$arr){

  $table = $this->fulltablename($table);

  $sql = "INSERT INTO $table ";

  if(!is_array($arr)){

  $this->show_error("请输入参数数组!");

  }else{

  $k = "";

  $v = "";

  foreach($arr as $key => $value){

  $k .= "`$key`,";

  $v .= "'".$value."',";

  }

  }

  $sql = $sql." (".substr($k,0,-1).") VALUES (".substr($v,0,-1).")";

  $this->query($sql);

  }

  //简化的update

  function update($table,$arr,$where){

  $table = $this->fulltablename($table);

  $sql = "UPDATE $table SET ";

  if(!is_array($arr)){

  $this->show_error("请输入参数数组!");

  }else{

  foreach($arr as $key => $value){

  $sql .= " `".$key."` = '".$value."' ,";

  }

  }

  $sql = substr($sql,0,-1)." where ".$where;

  return $this->query($sql);

  }

  //简化的delete

  function delete($table,$where = ""){

  $table = $this->fulltablename($table);

  if(emptyempty($where)){

  $this->show_error("条件不能为空!");

  }else{

  $where = " where ".$where;

  }

  $sql = "DELETE FROM $table ".$where;

  //echo $sql;

  return $this->query($sql);

  }

  //取得上一步 INSERT 操作产生的 ID

  public function insert_id(){

  return mysql_insert_id();

  }

  //加上前缀的数据表

  public function fulltablename($table){

  return $table = $this->pre.$table;

  }

  //查询字段数量

  public function num_fields($table){

  $table = $this->fulltablename($table);

  $this->query("select * from $table");

  echo "";

  echo "字段数:".$total = mysql_num_fields($this->result);

  echo "

  ";

  for ($i=0; $i<$total; $i++){

  print_r(mysql_fetch_field($this->result,$i) );

  }

  echo "";

  echo "";

  }

  //取得 MySQL 服务器信息

  public function mysql_server($num=''){

  switch ($num){

  case 1 :

  return mysql_get_server_info(); //MySQL 服务器信息

  break;

  case 2 :

  return mysql_get_host_info(); //取得 MySQL 主机信息

  break;

  case 3 :

  return mysql_get_client_info(); //取得 MySQL 客户端信息

  break;

  case 4 :

  return mysql_get_proto_info(); //取得 MySQL 协议信息

  break;

  default:

  return mysql_get_client_info(); //默认取得mysql版本信息

  }

  }

  //析构函数,自动关闭数据库,垃圾回收机制

  

  

  function getip(){

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

  }

  function show_error($str){

  echo "Javascript'> alert('".$str."');history.back(-1);";

  }

  }

  ?>

(责任编辑:豆豆)
下一篇:

java在linux系统下文件夹出现中文乱码的问题

上一篇:

java 赋值运算符、拷贝初始化和this指针

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com