主要是觉得每次都写sql语句麻烦,比较喜欢ASP中的那种写法,于是自己写了一个. 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; } } ?>