PHP生成SQL基本操作增删查改拼接代码

 1 <?php
 2 function create_sql_string($curdb){
 3     $conn=mysql_connect('localhost','root','ubt');
 4     mysql_select_db('information_schema',$conn);
 5 
 6     //查询当前数据库所有表的表名
 7     $sqlcmd=sprintf("SELECT `TABLE_NAME` FROM `TABLES` WHERE `TABLE_SCHEMA`='%s'",$curdb);
 8 
 9     $res_tablename=mysql_query($sqlcmd);
10     $f=fopen('cbc.sql','w+');
11     while($tablename=mysql_fetch_assoc($res_tablename)){
12         //查询当前表中所有字段信息
13         $sqlcmd=sprintf("SELECT * FROM `COLUMNS` WHERE `TABLE_SCHEMA`='%s' AND `TABLE_NAME`='%s'",
14                         $curdb,$tablename['TABLE_NAME']);
15         $res=mysql_query($sqlcmd);
16         $i=0;
17         $primay_key="";
18         $primay_val="";
19         $insert_key="";
20         $insert_fmt="";
21         $insert_val="";
22         $update_val="";
23         while ($record=mysql_fetch_assoc($res)){
24             if($record['COLUMN_KEY']=='PRI'){
25                 $primay_key=($record['NUMERIC_PRECISION']=="")?
                  ("`".$record['COLUMN_NAME']."`='%s'"):
                  ("`".$record['COLUMN_NAME']."`=%s"); 26 $primay_val="\$_GET['".$record['COLUMN_NAME']."']"; 27 28 } else { 29 30 if ($i>0) { 31 $insert_key.=','; 32 $insert_fmt.=','; 33 $insert_val.=','; 34 $update_val.=','; 35 } 36 $insert_key.='`'.$record['COLUMN_NAME'].'`'; 37 38 //字符串型的字段和数值型的字段分别处理 39 if ($record['NUMERIC_PRECISION']=="") { 40 $insert_fmt.="'%s'"; 41 $insert_val.=("\$_POST['".$record['COLUMN_NAME']."']"); 42 $update_val.=("`".$record['COLUMN_NAME']."`='%s'"); 43 } else { 44 $insert_fmt.="%s"; 45 $insert_val.=("\$_POST['".$record['COLUMN_NAME']."']"); 46 $update_val.=("`".$record['COLUMN_NAME']."`=%s"); 47 } 48 49 ++$i; 50 } 51 } 52 53 /* 54 **增加记录 55 **sprintf("INSERT INTO `TABLE_NAME`(`COLUMN_NAME1`,`COLUMN_NAME1` ...) VALUES('%s','%s' ...)", 56 ** $POST['COLUMN_NAME1'],$POST['COLUMN_NAME2'],...); 57 ** 58 **修改记录 59 **sprintf("UPDATE `TABLE_NAME` SET `COLUMN_NAME1`='%s',`COLUMN_NAME2`='%s' ... WHERE `id`=$s", 60 ** $POST['COLUMN_NAME1'],$POST['COLUMN_NAME2'], ... , 61 ** ID); 62 ** 63 **删除记录 64 **sprintf("DELETE FROM `TABLE_NAME` WHERE `id`=%s", 65 ** ID); 66 ** 67 **查找记录 68 **sprintf("SELECT `COLUMN_NAME1`,`COLUMN_NAME2`, ... FROM `TABLE_NAME` WHERE `id`=%s", 69 ** ID); 70 */ 71 72 $sqlcmd_insert=sprintf("INSERT INTO `%s`(%s) VALUES(%s)",
                    $tablename['TABLE_NAME'],$insert_key,$insert_fmt); 73 $sqlcmd_update=sprintf("UPDATE `%s` SET %s WHERE %s",
                    $tablename['TABLE_NAME'],$update_val,$primay_key); 74 $sqlcmd_delete=sprintf("DELETE FROM `%s` WHERE %s",
                    $tablename['TABLE_NAME'],$primay_key); 75 $sqlcmd_select=sprintf("SELECT %s FROM `%s` WHERE %s",
                    $insert_key,$tablename['TABLE_NAME'],$primay_key); 76 fprintf($f, "/*添加记录*/\r\n\$sqlcmd=sprintf(\"%s\",%s);\r\n",
              $sqlcmd_insert,$insert_val); 77 fprintf($f, "/*修改记录*/\r\n\$sqlcmd=sprintf(\"%s\",%s);\r\n",
              $sqlcmd_update,$primay_val); 78 fprintf($f, "/*删除记录*/\r\n\$sqlcmd=sprintf(\"%s\",%s);\r\n",
              $sqlcmd_delete,$primay_val); 79 fprintf($f, "/*查找记录*/\r\n\$sqlcmd=sprintf(\"%s\",%s);\r\n",
              $sqlcmd_select,$primay_val); 80 fwrite($f, "\r\n"); 81 } 82 fclose($f); 83 mysql_close(); 84 } 85 ?>

 

posted @ 2013-10-24 21:41  策码公子  阅读(490)  评论(1编辑  收藏  举报