当前位置:首页 > PHP教程 > php应用 > 列表

PHP实现的构造sql语句类实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-08 09:18:54 浏览: 评论:0 

这篇文章主要介绍了PHP实现的构造sql语句类,结合实例形式分析了PHP针对常用SQL语句的动态构造与生成技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现的构造sql语句类,分享给大家供大家参考,具体如下:

  1. /** 
  2. * @package Database Class 
  3. * @author injection (mail:injection.mail@gmail.com) 
  4. * @version 1.0 
  5. */ 
  6. @ini_set'display_errors',0 ); 
  7. class DataBase{ 
  8.  private $mDb_host,$mAb_user,$mAb_pwd,$mConn_No
  9.  function DataBase( $Conn_Obj ){ 
  10.  $this->connectDb( $Conn_Obj ); 
  11.  } 
  12.  function connectDb( $Conn_Obj ){ 
  13.  $this->mDb_host = $Conn_Obj->host; 
  14.  $this->mAd_name = $Conn_Obj->user; 
  15.  $this->mAd_pwd = $Conn_Obj->pwd; 
  16.  $this->mConn_No = mysql_connect( $this->mDb_host, $this->mAd_name, $this->mAd_pwd ); 
  17.  } 
  18.  function selectDb( $Conn_Obj ){ 
  19.  $this->mDb_name = $Conn_Obj->dbname; 
  20.  mysql_select_db( $this->mDb_name ); 
  21.  } 
  22. /** 
  23. * @package Making Sqls Class exetends Database Class 
  24. * @author injection (mail:injection.mail@gmail.com) 
  25. * @version 1.0 
  26. */ 
  27. class MakeSql extends DataBase{ 
  28.  private $mSql
  29.  function MakeSql( $type,$arr_colum_list$arr_sql_choice ){ 
  30.  $this->MakeSqlType( $arr_colum_list$arr_sql_choice ); 
  31.  } 
  32.  //switch make list 
  33.  function MakeSqlType( $type$arr_colum_list$arr_sql_choice ){ 
  34.  switch$type ){ 
  35.  case 'insert'
  36.  return $this->makeInsert( $arr_colum_list$arr_sql_choice ); 
  37.  case 'select'
  38.  return $this->makeSelect( $arr_colum_list$arr_sql_choice ); 
  39.  case 'update'
  40.  return $this->makeUpdate( $arr_colum_list$arr_sql_choice ); 
  41.  case 'delete'
  42.  return $this->makeDelete( $arr_colum_list$arr_sql_choice ); 
  43.  } 
  44.  } 
  45.  //make insert 
  46.  function makeInsert( $arr_colum_list,$arr_sql_choice ){ 
  47.  $colum_key = array_keys$arr_colum_list ); 
  48.  $colum_value = array_values$arr_colum_list ); 
  49.  $this->mSql = "INSERT INTO ".$arr_sql_choice["tbl_name"]."( ".join( ',' , $colum_key )." ) VALUES( '".join( "','" , $colum_value )."')"
  50.  return $this->mSql; 
  51.  } 
  52.  //making select 
  53.  function makeSelect( $arr_colum_list = '*' , $arr_sql_choice ){ 
  54.  $colum_value = array_keys$arr_colum_list ); 
  55.  foreach$arr_sql_choice as $sql_key => $sql_value ){ 
  56.  ifstrcmp$sql_key'tbl_name' ) == 0 ){ 
  57.  ifstrcmp($arr_colum_list'*' ) !== 0 ) 
  58.   $this->mSql = "SELECT ".join( ',' , $colum_value )." FROM ".$sql_value
  59.  else 
  60.   $this->mSql = "SELECT * FROM ".$sql_value
  61.  } 
  62.  else 
  63.  ifstrcmp$sql_value'' ) !== 0 ) 
  64.   if(strcmp$sql_key'WHERE' ) === 0 && strcmp$sql_value'colum' ) === 0 ){ 
  65.   foreach($arr_colum_list As $colum_key => $colum_value ) 
  66.   $this->mSql .= "$colum_key = '$colum_value' AND "
  67.   $this->mSql = rtrim( $this->mSql, " AND " ); 
  68.   } 
  69.   else 
  70.   $this->mSql .= " $sql_key ".$sql_value
  71.  } 
  72.  return $this->mSql;  
  73.  } 
  74.  //making update  
  75.  function makeUpdate( $arr_colum_list$arr_sql_choice ){ 
  76.  $this->mSql = "UPDATE ".$arr_sql_choice['tbl_name']." SET "
  77.  foreach$arr_colum_list as $colum_key => $colum_value ) 
  78.  $this->mSql .= "$colum_key = '$colum_value',"
  79.  $this->mSql = rtrim( $this->mSql , ','); 
  80.  foreach$arr_sql_choice as $sql_key => $sql_value ){ 
  81.  ifstrcmp$sql_value'' ) !== 0 && strcmp$sql_key'tbl_name' ) !==0 && strcmp$sql_key'ORDER BY' ) !== 0 ) 
  82.   $this->mSql .= " $sql_key ".$sql_value
  83.  } 
  84.  return $this->mSql; 
  85.  } 
  86.  //making delete 
  87.  function makeDelete( $arr_colum_list$arr_sql_choice ){ 
  88.  $this->mSql = "DELETE FROM ".$arr_sql_choice['tbl_name']; 
  89.  foreach$arr_sql_choice as $sql_key => $sql_value ){ 
  90.  ifstrcmp$sql_key'tbl_name' ) !== 0 && strcmp$sql_value'' ) !== 0 ){ 
  91.  $this->mSql .= " $sql_key ".$sql_value
  92.  } 
  93.  } 
  94.  return $this->mSql; 
  95.  } 
  96. }

Tags: 构造sql语句

分享到: