看到一位网友用js做了一个这样一个类似的东西,于是试着用php试试看效果。
多提意见,谢谢!
mysql语句生成器
2005-01-11 初步模型
2005-01-13 修改了可以输入数字及数字为开头的表名、字段和主键的bug
2005-01-17 加入代码生成历史记录下拉菜单,加入数据库连接部分,并重新修改整体程序模块
源代码:
====================
$val){
$tbl_list .= .$key.;
}
}
/*
* 生成语句函数
*/
function createcode($ar, $type = 0){
switch($type){
case 1://选择语句处理
$sql = /$sql = /select .fieldlist($ar[fieldlist]). /nfrom `.$ar[tbl].` .where($_post[keyword])./;/n;
break;
case 2://更新语句处理
$sql = /$sql = /update `.$ar[tbl].` set .fieldlist($ar[fieldlist], 2). .where($_post[keyword]). limit 1/;/n;
break;
default://插入语句处理
$sql = /$sql = /insert into `.$ar[tbl].`(.fieldlist($ar[fieldlist]).)/nvalues(.fieldlist($ar[fieldlist], 1).)/;/n;
}
if($ar[codetype]){//输出phplib
$sql = include(/inc/db_mysql.inc/);//包括mysql操作类/n/$db = new db_sql;//定义类/n/$db->connect();//连接数据库/n/n.$sql;
$sql .= /$db->query(/$sql);/n;
}else{
$sql = /* 连接数据库 *//n/$conn = mysql_pconnect(/localhost/, /username/, /password/) or die(/不能连接数据库:/.mysql_error());/n/* 选择数据库 *//nmysql_select_db(/mysql_database/) or die(/不能选择数据库/);/n/n.$sql;
$sql .= /$result = mysql_query(/$sql);/n;
}
return $sql;
}
/*
* 字段处理
*/
function fieldlist($fieldstr, $type = 0){
$str = ;
$tstr = split(,, $fieldstr);
foreach($tstr as $val){
switch($type){
case 1://用在插入语句中
if($str) $str .= , ;
$str .= '/./$_post[/.trim($val)./]./';
break;
case 2://用在更新语句中
if($str) $str .= , /n;
$str .= `.trim($val).` = '/./$_post[/.trim($val)./]./';
break;
default:
if($str) $str .= , ;
$str .= `.trim($val).`;
}
}
return $str;
}
function where($keyword){
return /nwhere `$keyword` = '/./$_post[/.$keyword./]./';
}
?>
mysql语句生成器
返回
if($tbl_list){
?>
= $tbl_list?>
}
?>
表名:
字段列表:
用逗号(,)分开各字段
主键字段:
代码类型:
一般代码
phplib
输出类型:
插入
选择
更新
$val){
if(in_array($key, $typein)) {
echo $line[$key].
/n ;
highlight_string(/n);
}
}
?>
