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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
比较时间段一与时间段二是否有交集的php函数
May 31 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
IIS安装Apache伪静态插件的具体操作图文
Jul 01 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
php 类自动载入的方法
Jun 03 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
php上传大文件设置方法
Apr 14 PHP
php+redis实现商城秒杀功能
Nov 19 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
帅气的琦玉老师
2020/03/02 日漫
239军机修复记
2021/03/02 无线电
关于PHP中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jQuery中index()的用法分析
2014/09/05 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
javascript时间差插件分享
2016/07/18 Javascript
node.js实现快速截图
2016/08/27 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
python在协程中增加任务实例操作
2021/02/28 Python
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
什么是lambda函数
2013/09/17 面试题
创建精神文明单位实施方案
2014/03/08 职场文书
房屋产权证明书
2014/10/15 职场文书
小学科学教学计划
2015/01/21 职场文书
2015年路政工作总结
2015/05/22 职场文书
党务工作者主要事迹材料
2015/11/03 职场文书
护理工作心得体会
2016/01/22 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android