您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> 编程语言综合 >> 正文

PHP的数据库操作类

作者:佚名    责任编辑:admin    更新时间:2022-06-22

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

  }

  /*执行SQL语句的函数*/

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

  }

  }

  /*

  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] 字段大小写敏感

  */

  /*取得记录集,获取数组-索引和关联,使用$row['content'] */

  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=''){