php动态sql语句,PHP实现的构造sql语句类实例

本文实例讲述了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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值