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抓即时股票信息
Oct 09 PHP
php获取文件大小的方法
Feb 26 PHP
zf框架db类的分页示例分享
Mar 14 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
PHP中使用curl伪造IP的简单方法
Aug 07 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 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
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
JS跨域代码片段
2012/08/30 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
再探JavaScript作用域
2014/09/24 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
Js面试算法详解
2018/04/08 Javascript
浅谈vue项目可以从哪些方面进行优化
2018/05/05 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
留学推荐信写作指南
2014/01/25 职场文书
2014年医院工作总结
2014/11/20 职场文书
2014年网管工作总结
2014/12/11 职场文书
离婚协议书范文2015
2015/01/26 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
销售会议开幕词
2016/03/04 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书