PHP实现的构造sql语句类实例


Posted in PHP onFebruary 03, 2016

本文实例讲述了PHP实现的构造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;
 }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php字符串截取问题
Nov 28 PHP
adodb与adodb_lite之比较
Dec 31 PHP
PHP操作文件方法问答
Mar 16 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
php中ob_get_length缓冲与获取缓冲长度实例
Nov 20 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
PHP中filter函数校验数据的方法详解
Jul 31 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
PHP文件与目录操作示例
Dec 24 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
Laravel 框架返回状态拦截代码
Oct 18 PHP
让你的PHP,APACHE,NGINX支持大文件上传
Mar 09 PHP
PHP快速生成各种信息提示框的方法
Feb 03 #PHP
PHP实现原比例生成缩略图的方法
Feb 03 #PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 #PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 #PHP
PHP开发中常用的十个代码样例
Feb 02 #PHP
必须收藏的php实用代码片段
Feb 02 #PHP
PHP执行linux命令常用函数汇总
Feb 02 #PHP
You might like
追求程序速度,而不是编程的速度
2008/04/23 PHP
php allow_url_include的应用和解释
2010/04/22 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
python实现的简单猜数字游戏
2015/04/04 Python
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python去除字符串两端空格的方法
2015/05/21 Python
简单谈谈python中的语句和语法
2017/08/10 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python logging设置和logger解析
2019/08/28 Python
使用python写一个自动浏览文章的脚本实例
2019/12/05 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
菲律宾票务网站:StubHub菲律宾
2018/04/21 全球购物
英国文具、办公用品和科技商店:Ryman
2018/09/27 全球购物
工作中的自我评价如何写好
2013/10/28 职场文书
职业生涯规划书的格式
2013/12/29 职场文书
高三地理教学反思
2014/01/11 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android