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的ob_start() 控制您的浏览器cache
Aug 03 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
php去掉文件前几行的方法
Jul 29 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php操作redis数据库常见方法实例总结
Feb 20 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 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
PHP中的加密功能
2006/10/09 PHP
给ECShop添加最新评论
2015/01/07 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
锐步英国官网:Reebok英国
2019/11/29 全球购物
最经典的商业地产项目广告词
2014/03/13 职场文书
环卫处个人工作总结
2015/03/04 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
结婚纪念日感言
2015/08/01 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers
JavaScript流程控制(循环)
2021/12/06 Javascript