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 相关文章推荐
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
php中static静态变量的使用方法详解
Jun 04 PHP
php simplexmlElement操作xml的命名空间实现代码
Jan 04 PHP
php实现统计邮件大小的方法
Aug 06 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
PHP的AES加密算法完整实例
Jul 20 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 PHP
thinkphp 获取控制器及控制器方法
Apr 16 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上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
sails框架的学习指南
2014/12/22 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
对python中的高效迭代器函数详解
2018/10/18 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
技校生自我鉴定
2013/12/08 职场文书
关于环保的建议书400字
2014/03/12 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
铅球加油稿100字
2014/09/26 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
golang中字符串MD5生成方式总结
2021/07/04 Golang