在编写程序中,写添加和更新sql语句是一个比较烦琐的过程,特别是在表结构比较复杂的时候
这个程序主要是根据数据表格式自动生成添加/更新的sql语句,然后由程序员直接加入到程序中,方便编程
下面是文件,方法建立一个单独的文件,按照下面的说明建立相关文件,运行即可
index.php 索引文件
config.php 配置文件,转换get/post数据
addxxx.php 根据提交表格数据生成sql语句
addxxx2.php 根据数据库表信息生成sql语句,配置数据库在文件内部
@author bluemaple
———————————————————-
index.php文件
———————————————————-
自动生成模版
自动生成添加表格,并产生相关sql添加语句,生成update语句(简单版)
———————————————————-
config.php文件
———————————————————-
/* 转换get和post数据 */
if (!defined(pma_grab_globals_included))
{
define(pma_grab_globals_included, 1);
if (!empty($_get))
{
extract($_get);
}
else if (!empty($http_get_vars))
{
extract($http_get_vars);
} // end if
if (!empty($_post))
{
extract($_post);
}
else if (!empty($http_post_vars))
{
extract($http_post_vars);
} // end if
if (!empty($_files))
{
while (list($name, $value) = each($_files))
{
$$name = $value[tmp_name];
}
}
else if (!empty($http_post_files))
{
while (list($name, $value) = each($http_post_files))
{
$$name = $value[tmp_name];
}
} // end if
}
?>
———————————————————-
addxxx.php
———————————————————-
include("config.php");
if($action == "")
{
echo "
添加的表数目:
";exit();
}
if($action == "c")
{
echo "
";echo " 添加到数据表:
方法(method):
提交表到(action):>
";
echo "
echo "
编号说明表名(tablename)值(value)";for($i = 1; $i<=$n; $i++)
{
echo "
";echo "
$i";echo "
";echo "
";echo "
";echo "
";}
echo "
";echo "
";echo "";
echo "";
echo "
";}
if($action == "a")
{
echo "
生成的插入sql语句
";if($submit)
{
if($t == "") $t = "table";
$tname = "";
$tvalue= "";
// table …
for($i = 1; $i <= $n; $i++)
{
$temp = "n".$i;
$tname .= $$temp;
if($i != $n)
{
$tname .= ", ";
}
$tempi = "n".$i;
$tvalue .= "\$".$$tempi."";
if($i != $n)
{
$tvalue .= ", ";
}
$usqli .= $$temp."=\$".$$tempi."";
if($i != $n)
{
$usqli .= ", ";
}
}
$sql = "insert into $t ($tname) values ($tvalue);";
echo $sql;
echo "
";
$usql = "update $t set ".$usqli." where ***";
echo $usql;
echo "
";
echo "生成表格 点右键查看源文件";
echo "
for($i = 1; $i <= $n; $i++)
{
$etemp = "e".$i;
$ntemp = "n".$i;
$vtemp = "v".$i;
echo "
".$$etemp."";}
echo "
";echo "";
}
}
?>
———————————————————-
addxxx2.php
———————————————————-
include("config.php");
if($action == "") $action = "d";
$mysqlserver = "localhost";
$mysqlport = 3306;
$mysqluser = "root";
$mysqlpwd = "";
if($action == d)
{
$mysql_id = mysql_pconnect($mysqlserver.":".$mysqlport, $mysqluser, $mysqlpwd);
if($db == "")
{
$db_list = mysql_list_dbs();
echo "选择数据库
";
while ($row = mysql_fetch_object($db_list))
{
echo "database.">".$row->database ."
";
}
}
if($db != "")
{
mysql_select_db($db);
$tresult = mysql_list_tables($db);
if (!$tresult)
{
echo "db error, could not list tables\n";
echo mysql error: . mysql_error();
exit;
}
echo "数据库$db列表
";
while ($row = mysql_fetch_row($tresult))
{
print "$row[0]
";
}
if($tname != "")
{
$fields = mysql_list_fields($db, $tname);
$n = mysql_num_fields($fields);
echo "$tname表中:";
for ($i = 0; $i < $n; $i++)
{
$name = mysql_field_name($fields, $i);
echo $name." ";
$tname .= $name;
$vname .= "\$".$name."";
$usqli .= $name."=\$".$name."";
if($i != $n-1)
{
$tname .= ", ";
$vname .= ", ";
$usqli .=" and ";
}
//create table…
$table .= "
".$name."\n";}
echo "生成表:
";
echo "insert into $tname ($tname) values ($vname);";
echo "
";
$usql = "update $tname set ".$usqli." where ***";
echo $usql;
echo "
";
echo "生成表格 点右键查看源文件
\n";
echo "
echo "$table";
echo "
";echo "";
}
}
}
?>