正在加载...
2006-10
5
发表于: 未分类 | 作者: xurenlu
标签:

主要是觉得每次都写sql语句麻烦,比较喜欢ASP中的那种写法,于是自己写了一个.

  1. <?php
  2.  
  3. class sqlGeneretaor{
  4.     /**
  5.     产生插入语句
  6.     $insert是这样的数组:
  7.     $insert["id"]=127;
  8.     $insert["userpass"]=("admin");
  9.    
  10.    
  11.     产生一个这样的SQL:
  12.     insert *** (id,userpass) values(127,'admin')';
  13.     */
  14.  function insert($tablename,$insertColumns,$debug=false){
  15.           array_map(mysql_escape_string,$insertColumns);
  16.         $insertSql="INSERT INTO `$tablename` (";
  17.         $keys=array_keys($insertColumns);
  18.         while(list($k,$v)=each($keys))
  19.         $keys[$k]="`".mysql_escape_string($v)."`";
  20.         $values=array_values($insertColumns);
  21.         while(list($k,$v)=each($values))
  22.         $values[$k]="'".mysql_escape_string($v)."'";
  23.         $insertSql.=join(",",$keys).") VALUES (".join(",",$values).")";
  24.         return $insertSql;
  25.     }
  26.     /**
  27.     产生删除语句
  28.     keycolumns是这样的数组:
  29.     $key[0]["columnname"]="uid";
  30.     $key[0]["var"]=27;
  31.     $key[0]["condition"]="equal";
  32.    
  33.     $key[1]["columnname"]="username";
  34.     $key[1]["var"]="example";
  35.     $key[1]["condition"]="equal"
  36.    
  37.  
  38.     产生一个这样的SQL:
  39.     delete from ****  where uid=27 and username='example';
  40.     */
  41.     function delete($tablename,$keyColumns)
  42.     {
  43.        
  44.         $deleteSql="delete from `$tablename` ";
  45.         $tempArr=array();
  46.         if(sizeof($keyColumns)>0)
  47.         {
  48.             while (list($k,$v)=each($keyColumns)) {
  49.                 $columnNameStr=$v["columnname"];
  50.                 $conditionStr=$v["condition"];
  51.                 $var=$v["var"];
  52.  
  53.                 switch (strtoupper($conditionStr))
  54.                 {
  55.                     case "MORE":
  56.                     {
  57.                         if(is_array($var))
  58.                              $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
  59.                          else
  60.                              $tempArr[]="`".$columnNameStr."`>'".$var."'";
  61.                         break;
  62.                     }
  63.                     case "LESS":
  64.                     {
  65.                         if(is_array($var))
  66.                              $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
  67.                          else
  68.                              $tempArr[]="`".$columnNameStr."`<'".$var."'";
  69.                         break;
  70.                     }
  71.                     case "LIKE":
  72.                     {
  73.                         if(is_array($var))
  74.                              $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
  75.                          else
  76.                              $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
  77.                         break;
  78.                     }
  79.                     default:
  80.                     {
  81.                         if(is_array($var))
  82.                              $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
  83.                          else
  84.                              $tempArr[]="`".$columnNameStr."` = '".$var."'";
  85.                         break;
  86.                     }
  87.  
  88.                 }
  89.  
  90.             }
  91.             $deleteSql.=" WHERE ".join(" AND ",$tempArr);
  92.         }
  93.         return $deleteSql;
  94.     }
  95.     /**
  96.     产生修改语句
  97.     keycolumns是这样的数组:
  98.     $key[0]["columnname"]="uid";
  99.     $key[0]["var"]=27;
  100.     $key[0]["condition"]="equal";
  101.    
  102.     $key[1]["columnname"]="username";
  103.     $key[1]["var"]="example";
  104.     $key[1]["condition"]="equal"
  105.    
  106.     $updatecolumns是这样的数组:
  107.     $update["id"]=127;
  108.     $update["userpass"]=("admin");
  109.    
  110.    
  111.     产生一个这样的SQL:
  112.     update **** set id=127,userpass='admin' where uid=27 and username='example';
  113.     */
  114.      function update($updateColumns,$tablename,$keyColumns)
  115.     {
  116.         array_map(mysql_escape_string,$updateColumns);
  117.        
  118.         $updateSql="update `$tablename` set ";
  119.         $columns=array();
  120.         while(list($k,$v)=each($updateColumns))
  121.         {
  122.             $columns[]="`".$k."`='" .$v."'";
  123.         }
  124.         $updateSql.=join(",",$columns);
  125.         $tempArr=array();
  126.         if(sizeof($keyColumns)>0)
  127.         {
  128.            
  129.             while (list($k,$v)=each($keyColumns)) {
  130.                 $columnNameStr=$v["columnname"];
  131.                 $conditionStr=$v["condition"];
  132.                 $var=$v["var"];
  133.            
  134.                 switch (strtoupper($conditionStr))
  135.                 {
  136.                     case "MORE":
  137.                     {
  138.                         if(is_array($var))
  139.                              $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
  140.                          else
  141.                              $tempArr[]="`".$columnNameStr."`>'".$var."'";
  142.                         break;
  143.                     }
  144.                     case "LESS":
  145.                     {
  146.                         if(is_array($var))
  147.                              $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
  148.                          else
  149.                              $tempArr[]="`".$columnNameStr."`<'".$var."'";
  150.                         break;
  151.                     }
  152.                     case "LIKE":
  153.                     {
  154.                         if(is_array($var))
  155.                              $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
  156.                          else
  157.                              $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
  158.                         break;
  159.                     }
  160.                     default:
  161.                     {
  162.                         if(is_array($var))
  163.                              $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
  164.                          else
  165.                              $tempArr[]="`".$columnNameStr."` = '".$var."'";
  166.                         break;
  167.                     }
  168.  
  169.                 }
  170.  
  171.             }
  172.             $updateSql.=" WHERE ".join(" AND ",$tempArr);
  173.         }
  174.         return $updateSql;
  175.     }
  176.     /**
  177.     产生查询语句
  178.     selectColumns是这样形式的数组:
  179.     $sel=array("userid,username,userpass");表示查userid,usernaem,userpass三项。
  180.     keycolumns是这样的数组:
  181.     $key[0]["columnname"]="uid";
  182.     $key[0]["var"]=27;
  183.     $key[0]["condition"]="equal";
  184.    
  185.     $key[1]["columnname"]="username";
  186.     $key[1]["var"]="example";
  187.     $key[1]["condition"]="equal"
  188.    
  189.     产生一个这样的SQL:
  190.     select userid,username,userpass from *** where uid=27 and username='example';
  191.     */
  192.    
  193.      function select($tablename,$selectColumns,$keyColumns,$orders,$limitStatement)
  194.     {
  195.         $selectSql="SELECT ";
  196.         $tempArr=array();
  197.         while (list($k,$v)=each($selectColumns))
  198.         {
  199.             $tempArr[]=$v;
  200.         }
  201.         $selectSql.=join(",",$tempArr)." FROM $tablename ";
  202.         $tempArr=array();
  203.         if(sizeof($keyColumns)>0)
  204.         {
  205.             while (list($k,$v)=each($keyColumns)) {
  206.                 $columnNameStr=$v["columnname"];
  207.                 $conditionStr=$v["condition"];
  208.                 $var=$v["var"];
  209.  
  210.                 switch (strtoupper($conditionStr))
  211.                 {
  212.                     case "MORE":
  213.                     {
  214.                         if(is_array($var))
  215.                              $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
  216.                          else
  217.                              $tempArr[]="`".$columnNameStr."`>'".$var."'";
  218.                         break;
  219.                     }
  220.                     case "LESS":
  221.                     {
  222.                         if(is_array($var))
  223.                              $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
  224.                          else
  225.                              $tempArr[]="`".$columnNameStr."`<'".$var."'";
  226.                         break;
  227.                     }
  228.                     case "NOT":
  229.                     {
  230.                         if(is_array($var))
  231.                              $tempArr[]="`".$columnNameStr."`!="."`".$var."`";
  232.                          else
  233.                              $tempArr[]="`".$columnNameStr."`!='".$var."'";
  234.                         break;
  235.                     }                   
  236.                     case "LIKE":
  237.                     {
  238.                         if(is_array($var))
  239.                              $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
  240.                          else
  241.                              $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
  242.                         break;
  243.                     }
  244.                     default:
  245.                     {
  246.                         if(is_array($var))
  247.                              $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
  248.                          else
  249.                              $tempArr[]="`".$columnNameStr."` = '".$var."'";
  250.                         break;
  251.                     }
  252.  
  253.                 }
  254.  
  255.             }
  256.             $selectSql.=" WHERE ".join(" AND ",$tempArr);
  257.            
  258.         }
  259.         $tempArr=array();
  260.         if(sizeof($orders)>0)
  261.         {
  262.             foreach ($orders as $arr)
  263.             {
  264.                 $tempArr[]=" `".$arr["ordercolumn"]."` ".$arr["ordertype"];
  265.             }
  266.             $selectSql.=" ORDER BY ".join(" , ",$tempArr)." ";
  267.         }
  268.         $selectSql.=" ".$limitStatement;
  269.         return $selectSql;
  270.     }
  271. }
  272.  
  273. ?>

: http://www.162cm.com/archives/271.html

本文相关评论 - 1条评论都没有呢

还没有评论。