2006-10
5
主要是觉得每次都写sql语句麻烦,比较喜欢ASP中的那种写法,于是自己写了一个.
- <?php
- class sqlGeneretaor{
- /**
- 产生插入语句
- $insert是这样的数组:
- $insert["id"]=127;
- $insert["userpass"]=("admin");
- 产生一个这样的SQL:
- insert *** (id,userpass) values(127,'admin')';
- */
- function insert($tablename,$insertColumns,$debug=false){
- array_map(mysql_escape_string,$insertColumns);
- $insertSql="INSERT INTO `$tablename` (";
- $keys=array_keys($insertColumns);
- while(list($k,$v)=each($keys))
- $keys[$k]="`".mysql_escape_string($v)."`";
- $values=array_values($insertColumns);
- while(list($k,$v)=each($values))
- $values[$k]="'".mysql_escape_string($v)."'";
- $insertSql.=join(",",$keys).") VALUES (".join(",",$values).")";
- return $insertSql;
- }
- /**
- 产生删除语句
- keycolumns是这样的数组:
- $key[0]["columnname"]="uid";
- $key[0]["var"]=27;
- $key[0]["condition"]="equal";
- $key[1]["columnname"]="username";
- $key[1]["var"]="example";
- $key[1]["condition"]="equal"
- 产生一个这样的SQL:
- delete from **** where uid=27 and username='example';
- */
- function delete($tablename,$keyColumns)
- {
- $deleteSql="delete from `$tablename` ";
- $tempArr=array();
- if(sizeof($keyColumns)>0)
- {
- while (list($k,$v)=each($keyColumns)) {
- $columnNameStr=$v["columnname"];
- $conditionStr=$v["condition"];
- $var=$v["var"];
- switch (strtoupper($conditionStr))
- {
- case "MORE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`>'".$var."'";
- break;
- }
- case "LESS":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`<'".$var."'";
- break;
- }
- case "LIKE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
- break;
- }
- default:
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` = '".$var."'";
- break;
- }
- }
- }
- $deleteSql.=" WHERE ".join(" AND ",$tempArr);
- }
- return $deleteSql;
- }
- /**
- 产生修改语句
- keycolumns是这样的数组:
- $key[0]["columnname"]="uid";
- $key[0]["var"]=27;
- $key[0]["condition"]="equal";
- $key[1]["columnname"]="username";
- $key[1]["var"]="example";
- $key[1]["condition"]="equal"
- $updatecolumns是这样的数组:
- $update["id"]=127;
- $update["userpass"]=("admin");
- 产生一个这样的SQL:
- update **** set id=127,userpass='admin' where uid=27 and username='example';
- */
- function update($updateColumns,$tablename,$keyColumns)
- {
- array_map(mysql_escape_string,$updateColumns);
- $updateSql="update `$tablename` set ";
- $columns=array();
- while(list($k,$v)=each($updateColumns))
- {
- $columns[]="`".$k."`='" .$v."'";
- }
- $updateSql.=join(",",$columns);
- $tempArr=array();
- if(sizeof($keyColumns)>0)
- {
- while (list($k,$v)=each($keyColumns)) {
- $columnNameStr=$v["columnname"];
- $conditionStr=$v["condition"];
- $var=$v["var"];
- switch (strtoupper($conditionStr))
- {
- case "MORE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`>'".$var."'";
- break;
- }
- case "LESS":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`<'".$var."'";
- break;
- }
- case "LIKE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
- break;
- }
- default:
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` = '".$var."'";
- break;
- }
- }
- }
- $updateSql.=" WHERE ".join(" AND ",$tempArr);
- }
- return $updateSql;
- }
- /**
- 产生查询语句
- selectColumns是这样形式的数组:
- $sel=array("userid,username,userpass");表示查userid,usernaem,userpass三项。
- keycolumns是这样的数组:
- $key[0]["columnname"]="uid";
- $key[0]["var"]=27;
- $key[0]["condition"]="equal";
- $key[1]["columnname"]="username";
- $key[1]["var"]="example";
- $key[1]["condition"]="equal"
- 产生一个这样的SQL:
- select userid,username,userpass from *** where uid=27 and username='example';
- */
- function select($tablename,$selectColumns,$keyColumns,$orders,$limitStatement)
- {
- $selectSql="SELECT ";
- $tempArr=array();
- while (list($k,$v)=each($selectColumns))
- {
- $tempArr[]=$v;
- }
- $selectSql.=join(",",$tempArr)." FROM $tablename ";
- $tempArr=array();
- if(sizeof($keyColumns)>0)
- {
- while (list($k,$v)=each($keyColumns)) {
- $columnNameStr=$v["columnname"];
- $conditionStr=$v["condition"];
- $var=$v["var"];
- switch (strtoupper($conditionStr))
- {
- case "MORE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`>"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`>'".$var."'";
- break;
- }
- case "LESS":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`<"."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`<'".$var."'";
- break;
- }
- case "NOT":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."`!="."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."`!='".$var."'";
- break;
- }
- case "LIKE":
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` LIKE "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` LIKE '%".$var."%'";
- break;
- }
- default:
- {
- if(is_array($var))
- $tempArr[]="`".$columnNameStr."` = "."`".$var."`";
- else
- $tempArr[]="`".$columnNameStr."` = '".$var."'";
- break;
- }
- }
- }
- $selectSql.=" WHERE ".join(" AND ",$tempArr);
- }
- $tempArr=array();
- if(sizeof($orders)>0)
- {
- foreach ($orders as $arr)
- {
- $tempArr[]=" `".$arr["ordercolumn"]."` ".$arr["ordertype"];
- }
- $selectSql.=" ORDER BY ".join(" , ",$tempArr)." ";
- }
- $selectSql.=" ".$limitStatement;
- return $selectSql;
- }
- }
- ?>
还没有评论。