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网页后退不再出现过期
Mar 08 PHP
php出现Cannot modify header information问题的解决方法大全
Apr 09 PHP
PHP 文件上传源码分析(RFC1867)
Oct 30 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
Dec 11 PHP
php获得url参数中具有&的值的方法
Mar 05 PHP
php建立Ftp连接的方法
Mar 07 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP分享图片的生成方法
Apr 25 PHP
laravel中Redis队列监听中断的分析
Sep 14 PHP
PHP实现腾讯短网址生成api接口实例
Dec 08 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数组无限分级数据的层级化处理代码
2012/12/29 PHP
php调用mysql存储过程实例分析
2014/12/29 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
js实现打字小游戏
2019/12/17 Javascript
js实现点击生成随机div
2020/01/16 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
安装python及pycharm的教程图解
2019/10/10 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
双十佳事迹材料
2014/01/29 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
金融事务专业求职信
2014/04/25 职场文书
住房抵押登记委托书
2014/09/27 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
计划生育个人总结
2015/03/02 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang