萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> PHP的數據庫操作類

PHP的數據庫操作類

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

copyright © 萬盛學電腦網 all rights reserved