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注释实例技巧
Oct 03 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
php 显示指定路径下的图片
Oct 29 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
强制PHP命令行脚本单进程运行的方法
Apr 15 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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
用缓存实现静态页面的测试
2006/12/06 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
destoon之一键登录设置
2014/06/21 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
用原生js做单页应用
2017/01/17 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
vue动态改变背景图片demo分享
2018/09/13 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
JS面向对象实现飞机大战
2020/08/26 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
python简单的函数定义和用法实例
2015/05/07 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
pymysql模块的操作实例
2019/12/17 Python
pytorch加载自己的图像数据集实例
2020/07/07 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
python 实现IP子网计算
2021/02/18 Python
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
为什么要有struct关键字
2012/05/08 面试题
简历的自我评价
2014/02/03 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
学生会部长竞选稿
2015/11/19 职场文书