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 09 PHP
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
php中Ctype函数用法详解
Dec 09 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
php mysql实现mysql_select_db选择数据库
Dec 30 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
PHP rsa加密解密算法原理解析
Dec 09 PHP
php中Swoole的热更新实现代码实例
Mar 04 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
php UTF8 文件的签名问题
2009/10/30 PHP
php 注释规范
2012/03/29 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
django如何自己创建一个中间件
2019/07/24 Python
python的移位操作实现详解
2019/08/21 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
百联网上商城:i百联
2017/01/28 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
高中毕业生自我鉴定例文
2013/12/29 职场文书
开会迟到检讨书
2014/02/03 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP