PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)


Posted in PHP onJuly 23, 2011

根据 Mysql 里的字段 自动生成 类文件:

但需要导入:

require_once ./db/ez_sql_core.php;
require_once ./db/ez_sql_mysql.php;

帮助文档:http://jvmultimedia.com/docs/ezsql/ez_sql_help.htm 

上图 :

PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)

核心代码:

<?php 
class db{ 
/********************************************************************** 
* Author: fangjun (fangjunai@163.com) 
* Name..: PHP_For_MySQL_Helper v1.0 
* Desc..: 自动生成数据库操作类 
* Date..: 2011-7-22 
/**********************************************************************/ 
private $db_server = 'localhost'; 
private $db_username = 'root'; 
private $db_password = ''; 
private $primary_key = null; 
//初始化 
public function __construct(){ 
$this->db_conn = mysql_connect($this->db_server,$this->db_username,$this->db_password) or die('Error:'.mysql_error()); 
} 
//返回所以的数据库名称 
public function db_list(){ 
$databasename = array(); 
$i=0; 
$list = mysql_list_dbs($this->db_conn); 
while ($row = mysql_fetch_object($list)) { 
$databasename[$i] = $row->Database; 
$i++; 
} 
mysql_close(); 
return $databasename; 
} 
//返回所以的数据库名称 
public function table_list($databasename){ 
$tablename = array(); 
$i=0; 
$result = @mysql_list_tables($databasename); 
while($row = mysql_fetch_array($result,MYSQL_NUM)){ 
$tablename[$i] = $row[0]; 
$i++; 
} 
mysql_free_result($result); 
mysql_close(); 
return $tablename; 
} 
//返回表里的字段 
public function field_list($databasename,$tablename){ 
$fieldname = array(); 
$v = 0; 
mysql_select_db($databasename,$this->db_conn); 
$rel = mysql_query("select * from ".$tablename); 
for($i=0;$i<mysql_num_fields($rel);$i++){ 
$meta = mysql_fetch_field($rel); 
if($meta){ 
if($meta->primary_key==1){ 
$this->primary_key = $meta->name; 
}else{ 
$fieldname[$v] = $meta->name; 
$v++; 
} 
} 
} 
mysql_close(); 
return $fieldname; 
} 
public function showclass($databasename,$tablename){ 
$field = $this->field_list($databasename,$tablename); 
$this->primary_key; 
$key = null; 
$val = null; 
$sql = null; 
$tmp = null; 
$html = '////////////////////////////////////<br/>'; 
$html = $html.'//使用方法<br/>'; 
$html = $html.'// 导入<br/>'; 
$html = $html.'// ez_sql:http://jvmultimedia.com/docs/ezsql/ez_sql_help.htm'; 
$html = $html.'// require_once \'./db/ez_sql_core.php;<br/>'; 
$html = $html.'// require_once \'./db/ez_sql_mysql.php;<br/>'; 
$html = $html.'// $db = new ezSQL_mysql($cfg_db_user,$cfg_db_pass,$cfg_db_name,$cfg_db_host);<br/>'; 
$html = $html.'// $db->query(\'set names utf8\');<br/>'; 
$html = $html.'// 调用<br/>'; 
$html = $html.'// $forum = new Forum($db);<br/>'; 
$html = $html.'// $forum->save($Posts);<br/>'; 
$html = $html.'////////////////////////////////////<br/><br/><br/>'; 
$html = $html.'// 作者:<br/>'; 
$html = $html.'// 备注:<br/>'; 
$html = $html.'// 创建时间:'.date('Y-m-d H:i:s').'<br/>'; 
$html = $html.'<PRE> class '.$tablename.'{<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' private $db'; 
$html = $html.'<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' //实例化 <br/>'; 
$html = $html.' public function '.$tablename.'($db){<br/>'; 
$html = $html.' $this->db = $db;<br/>'; 
$html = $html.' }<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' //保存记录<br/>'; 
$html = $html.' public function save($arry){<br/>'; 
for($i=0;$i<count($field);$i++){ 
$key = $key.$field[$i].','; 
$val = $val.'\'{$arry['.$field[$i].']}\','; 
} 
$sql = "\"insert into ".$tablename." (".rtrim($key,",").")values(".rtrim($val,",").")\""; 
$html = $html.' $sql='.$sql.';<br/>'; 
$html = $html.' return $this->db->query($sql);<br/>'; 
$html = $html.' }<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' //根据主键更新记录 <br/>'; 
$html = $html.' public function update($arry){<br/>'; 
for($i=0;$i<count($field);$i++){ 
$tmp = $tmp.$field[$i].'=\'{$arry['.$field[$i].']}\','; 
} 
$sql = "\"update ".$tablename." set ".rtrim($tmp,",")." where ".$this->primary_key.'=".$arry['.$this->primary_key.']'; 
$html = $html.' $sql='.$sql.';<br/>'; 
$html = $html.' return $this->db->query($sql);<br/>'; 
$html = $html.' }<br/>'; 
//PostID='{$Posts['PostID']}'"; 
$html = $html.'<br/>'; 
$html = $html.' //根据主键删除记录 <br/>'; 
$html = $html.' public function delete($'.$this->primary_key.'){<br/>'; 
$sql = "\"delete from ".$tablename." where ".$this->primary_key."=\".$".$this->primary_key; 
$html = $html.' $sql='.$sql.';<br/>'; 
$html = $html.' return $this->db->query($sql);<br/>'; 
$html = $html.' }<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' //根据主键查询一条记录 <br/>'; 
$html = $html.' public function getQueryById($'.$this->primary_key.'){<br/>'; 
$sql = "\"select * from ".$tablename." where ".$this->primary_key."=\".$".$this->primary_key; 
$html = $html.' $sql='.$sql.';<br/>'; 
$html = $html.' return $this->db->get_row($sql);<br/>'; 
$html = $html.' }<br/>'; 
$html = $html.'<br/>'; 
$html = $html.' //查询全部记录 <br/>'; 
$html = $html.' public function getQuery(){<br/>'; 
$sql = "\"select * from ".$tablename."\""; 
$html = $html.' $sql='.$sql.';<br/>'; 
$html = $html.' return $this->db->get_results($sql);<br/>'; 
$html = $html.' }<br/>'; 
$html = $html.'<br/>'; 
$html = $html.'<br/>'; 
$html = $html.'}</PRE>'; 
echo $html; 
} 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title> PHP For MySQL Helper v1.0 </title> 
<style> 
body{ font-size:14px;} 
h3{ padding:0px; margin:0px; background-color:#333; color:#FFF;font-size:14px; } 
.dblist,.tablelist,.show{width:100%;padding:10px 0;} 
a:link {} 
a:hover {color:#F00} 
</style> 
</head> 
<body> 
<?php 
ini_set('default_charset', 'utf-8'); 
echo '<div class=\'dblist\'>'; 
echo '<h3>请选择数据库</h3>'; 
//----------------------------------- 
$DB = new db(); 
$dblist = $DB->db_list(); 
for ($row=0;$row<count($dblist);$row++){ 
echo '<a href="?databasename='.$dblist[$row].'">'.$dblist[$row].'</a><br/>'; 
} 
//----------------------------------- 
echo '</div>'; 
echo '<div class=\'tablelist\'>'; 
echo '<h3>请选择表</h3>'; 
//----------------------------------- 
if(isset($_GET['databasename'])){ 
$databasename = $_GET['databasename']; 
$DB = new db(); 
$tablelist = $DB->table_list($databasename); 
for ($i=0;$i<count($tablelist);$i++){ 
echo '<a href="db.php?databasename='.$databasename.'&tablename='.$tablelist[$i].'">'.$tablelist[$i].'</a><br/>'; 
} 
} 
//----------------------------------- 
echo '</div>'; 
echo '<div class=\'show\'>'; 
echo '<h3>自动生成数据类</h3>'; 
//----------------------------------- 
if(isset($_GET['databasename'])&& isset($_GET['tablename'])){ 
$databasename = $_GET['databasename']; 
$tablename = $_GET['tablename']; 
$DB = new db(); 
$DB->showclass($databasename,$tablename); 
} 
//----------------------------------- 
echo '</div>'; 
?> 
</body> 
</html>

代码打包下载
PHP 相关文章推荐
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
PHP5权威编程阅读学习笔记 附电子书下载
Jul 05 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
js代码实现微博导航栏
Jul 30 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
php实现算术验证码功能
Dec 05 PHP
php文档更新介绍
Jul 22 #PHP
php 数据库字段复用的基本原理与示例
Jul 22 #PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 #PHP
PHP性能优化 产生高度优化代码
Jul 22 #PHP
PHP多个版本的分析解释
Jul 21 #PHP
QQ登录 PHP OAuth示例代码
Jul 20 #PHP
模板引擎正则表达式调试小技巧
Jul 20 #PHP
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP的博客ping服务代码
2012/02/04 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
Vue父子之间值传递的实例教程
2020/07/02 Javascript
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
详解如何设置Python环境变量?
2019/05/13 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
python实现UDP协议下的文件传输
2020/03/20 Python
解决Opencv+Python cv2.imshow闪退问题
2020/04/24 Python
django中related_name的用法说明
2020/05/20 Python
django Model层常用验证器及自定义验证器详解
2020/07/15 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
欢送退休感言
2014/02/08 职场文书
物业保安员岗位职责
2014/03/14 职场文书
安全生产计划书
2014/05/04 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android