社区
基础编程
帖子详情
现在发现写对数据库操作的语句很多都重复,有没有什么办法给它自动生成呢?
yzxlyd
2006-10-11 08:30:12
大家在写sql语句的时候还是一个一个字敲进去的吗?还是用其它什么办法?
...全文
362
12
打赏
收藏
现在发现写对数据库操作的语句很多都重复,有没有什么办法给它自动生成呢?
大家在写sql语句的时候还是一个一个字敲进去的吗?还是用其它什么办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
PleaseDoTellMeWhy
2006-10-18
打赏
举报
回复
楼上的哥们的代码我收藏了,闲了研究下,谢谢啊!
zysoft17
2006-10-12
打赏
举报
回复
http://zsss.blog.sohu.com/7966496.html
http://zsss.blog.sohu.com/7965210.html
http://zsss.blog.sohu.com/8254219.html
an9ryfr09
2006-10-11
打赏
举报
回复
现在的开发框架都会有一些生成sql语句的类或方法。
当然你也可以自己写一个,难度不是特别大。就是传一些参数进去,如表名,字段名。然后将一些固定形式的语句与这些参数连接起来。
yzxlyd
2006-10-11
打赏
举报
回复
to lantersen(蓝水仁--我们的选择是做或不做,但不做将永远没有机会) :
你指的是哪个?
lantersen
2006-10-11
打赏
举报
回复
下面的可能你能用上:
http://www.pearchina.com/modules/webtrans/category.php?cat_id=6
--看来我们CODE前,需要更多的分析,便于节省维护时间与开销--题外话--
iasky
2006-10-11
打赏
举报
回复
写成一个类或者函数
xuzuning
2006-10-11
打赏
举报
回复
永远都不要期望用某个算法去覆盖整个宇宙
细微的差别可能产生相反的结果——正所谓“失之毫厘,谬之千里”
对于具体的项目,完全可以集中书写所需的sql语句
只在提供动态查询的系统中才需要动态构造查询串
an9ryfr09
2006-10-11
打赏
举报
回复
可以这样来调用:
require_once('Database.php');
class test{
var $host,$Dbname,$user,$pwd;
function test( $host,$Dbname,$user,$pwd ){
$this->host = $host;
$this->Dbname = $Dbname;
$this->user = $user;
$this->pwd = $pwd;
}
}
$conn = new test( 'localhost','test','root','root');
$colum = array(
"user" => "admin",
"pass" => "admin000",
"email" => "admin@gmail.com"
);
$choice = array(
"tbl_name" => "test",
"WHERE" => "user <> ''",
"ORDER BY" => "id desc",
"LIMIT" => "30"
);
$getSql = new MakeSql( $conn );
$getSql->selectDb( $conn );
echo $getSql->MakeSqlType( 'insert', $colum, $choice );
an9ryfr09
2006-10-11
打赏
举报
回复
我写的一个构造sql的类,不过我觉得还是不够灵活。
/**
* @package Database Class
* @author injection (mail:injection.mail@gmail.com)
* @version 1.0
*/
@ini_set( 'display_errors',0 );
class DataBase{
private $mDb_host,$mAb_user,$mAb_pwd,$mConn_No;
function DataBase( $Conn_Obj ){
$this->connectDb( $Conn_Obj );
}
function connectDb( $Conn_Obj ){
$this->mDb_host = $Conn_Obj->host;
$this->mAd_name = $Conn_Obj->user;
$this->mAd_pwd = $Conn_Obj->pwd;
$this->mConn_No = mysql_connect( $this->mDb_host, $this->mAd_name, $this->mAd_pwd );
}
function selectDb( $Conn_Obj ){
$this->mDb_name = $Conn_Obj->dbname;
mysql_select_db( $this->mDb_name );
}
}
/**
* @package Making Sqls Class exetends Database Class
* @author injection (mail:injection.mail@gmail.com)
* @version 1.0
*/
class MakeSql extends DataBase{
private $mSql;
function MakeSql( $type,$arr_colum_list, $arr_sql_choice ){
$this->MakeSqlType( $arr_colum_list, $arr_sql_choice );
}
#switch make list
function MakeSqlType( $type, $arr_colum_list, $arr_sql_choice ){
switch( $type ){
case 'insert':
return $this->makeInsert( $arr_colum_list, $arr_sql_choice );
case 'select':
return $this->makeSelect( $arr_colum_list, $arr_sql_choice );
case 'update':
return $this->makeUpdate( $arr_colum_list, $arr_sql_choice );
case 'delete':
return $this->makeDelete( $arr_colum_list, $arr_sql_choice );
}
}
#make insert
function makeInsert( $arr_colum_list,$arr_sql_choice ){
$colum_key = array_keys( $arr_colum_list );
$colum_value = array_values( $arr_colum_list );
$this->mSql = "INSERT INTO ".$arr_sql_choice["tbl_name"]."( ".join( ',' , $colum_key )." ) VALUES( '".join( "','" , $colum_value )."')";
return $this->mSql;
}
#making select
function makeSelect( $arr_colum_list = '*' , $arr_sql_choice ){
$colum_value = array_keys( $arr_colum_list );
foreach( $arr_sql_choice as $sql_key => $sql_value ){
if( strcmp( $sql_key, 'tbl_name' ) == 0 ){
if( strcmp($arr_colum_list, '*' ) !== 0 )
$this->mSql = "SELECT ".join( ',' , $colum_value )." FROM ".$sql_value;
else
$this->mSql = "SELECT * FROM ".$sql_value;
}
else
if( strcmp( $sql_value, '' ) !== 0 )
if(strcmp( $sql_key, 'WHERE' ) === 0 && strcmp( $sql_value, 'colum' ) === 0 ){
foreach($arr_colum_list As $colum_key => $colum_value )
$this->mSql .= "$colum_key = '$colum_value' AND ";
$this->mSql = rtrim( $this->mSql, " AND " );
}
else
$this->mSql .= " $sql_key ".$sql_value;
}
return $this->mSql;
}
#making update
function makeUpdate( $arr_colum_list, $arr_sql_choice ){
$this->mSql = "UPDATE ".$arr_sql_choice['tbl_name']." SET ";
foreach( $arr_colum_list as $colum_key => $colum_value )
$this->mSql .= "$colum_key = '$colum_value',";
$this->mSql = rtrim( $this->mSql , ',');
foreach( $arr_sql_choice as $sql_key => $sql_value ){
if( strcmp( $sql_value, '' ) !== 0 && strcmp( $sql_key, 'tbl_name' ) !==0 && strcmp( $sql_key, 'ORDER BY' ) !== 0 )
$this->mSql .= " $sql_key ".$sql_value;
}
return $this->mSql;
}
#making delete
function makeDelete( $arr_colum_list, $arr_sql_choice ){
$this->mSql = "DELETE FROM ".$arr_sql_choice['tbl_name'];
foreach( $arr_sql_choice as $sql_key => $sql_value ){
if( strcmp( $sql_key, 'tbl_name' ) !== 0 && strcmp( $sql_value, '' ) !== 0 ){
$this->mSql .= " $sql_key ".$sql_value;
}
}
return $this->mSql;
}
}
yzxlyd
2006-10-11
打赏
举报
回复
to gui0605() :
那个软件只能生成oracle/sql server,我要操作的数据库是mysql,请问还有什么软件可以生成吗?
gui0605
2006-10-11
打赏
举报
回复
推荐你用《动软.Net代码自动生成器》,只要导入表结构就可以自动生成常用的代码,包括存储过程。
yzxlyd
2006-10-11
打赏
举报
回复
框架能提供些什么给我们用呢?有哪些比较好一点的框架呢?
数据库
执行SQL
语句
跟踪
不管你是刚学习软件开发的初学者,还是在IT职场打拼多年的职场老鸟,都免不了要同各种
数据库
打交道,你可能会碰到以下几个问题:1、感觉自己
写
的sql
语句
没有错,但是执行结果总是不对;2、某个功能执行的
语句
知道有...
Android Room
数据库
升级
自动生成
SQL
语句
Room
数据库
在升级时最麻烦的地方在于要自己
写
SQL
语句
,如果一个对象里面的属性
很多
的情况下自己
写
不管是语法上还是CV
操作
上都容易出现错误。但是Room又是谷歌官方推荐的
数据库
框架,并且也提供了
很多
方便的地方,...
Oracle
数据库
自动生成
insert
语句
Oracle
数据库
自动生成
insert
语句
...在
操作
数据库
时经常要
写
insert
语句
,有时如果一个表有
很多
个字段的话,表的列名一个个
写
起来会很繁琐而且容易出错,怎样才能自动把表列名拼成串生成insert
语句
呢,下面小编分享一
mysql
语句
生成器_MySQL SQL 生成工具,SQL
自动生成
,SQL
语句
生成工具SQLPAD
前言我们平时会经常
写
SQL
语句
,这个过程我有一个痛点我一直使用的
数据库
工具是 Sequel Pro,在
写
SQL时有点不方便,主要是对表明和字段名的自动提示支持得不好有自动提示,但很迟钝
写
SQL的过程中我还需要经常去表结构...
多表关联
自动生成
SQL
语句
Navicat_for_MySQL只能连接MySQL
数据库
,工作中表数据比较多,
很多
都搬到Oracle
数据库
了,Navicat_Premium_cs_x64都...5c5d ,破解方法及需要的文件也都在其中,比较简单,网上也
很多
,就不说了,开始生成SQL
语句
吧...
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章