php实现的通过参数生成mysql语句类完整实例,mysql语句本文实例讲述了php实现的通过参数生成mysql语句类。分享给大家供大家参考,具体如下:
这个类可以通过指定的表和字段参数创建select ,insert , update 和 delete 语句。
这个类可以创建sql语句的where条件,像like的查询语句,使用left join和order 语句
clear_all_assign(); // to refresh all property but it no need when first time execute $object -> setfields( $fields ); $object -> setvalues( $values ); $object -> settables( $tables ); if ( ! $object -> getinsertsql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;} echo result generate update
; $fields = array ( name , address , city ); $values = array ( fadjar , resultmang raya street , jakarta ); $tables = array ( customer ); $id = 1 ; $conditions [ 0 ][ condition ] = id='$id' ; $conditions [ 0 ][ connection ] = ; $object -> clear_all_assign(); $object -> setfields( $fields ); $object -> setvalues( $values ); $object -> settables( $tables ); $object -> setconditions( $conditions ); if ( ! $object -> getupdatesql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;} echo result generate delete
; $tables = array ( customer ); $conditions [ 0 ][ condition ] = id='1' ; $conditions [ 0 ][ connection ] = or ; $conditions [ 1 ][ condition ] = id='2' ; $conditions [ 1 ][ connection ] = or ; $conditions [ 2 ][ condition ] = id='4' ; $conditions [ 2 ][ connection ] = ; $object -> clear_all_assign(); $object -> settables( $tables ); $object -> setconditions( $conditions ); if ( ! $object -> getdeletesql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;} echo result generate list
; $fields = array ( id , name , address , city ); $tables = array ( customer ); $id = 1 ; $conditions [ 0 ][ condition ] = id='$id' ; $conditions [ 0 ][ connection ] = ; $object -> clear_all_assign(); $object -> setfields( $fields ); $object -> settables( $tables ); $object -> setconditions( $conditions ); if ( ! $object -> getquerysql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;} echo result generate list with search on all fields
; $fields = array ( id , name , address , city ); $tables = array ( customer ); $id = 1 ; $search = fadjar nurswanto ; $object -> clear_all_assign(); $object -> setfields( $fields ); $object -> settables( $tables ); $object -> setsearch( $search ); if ( ! $object -> getquerysql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;} echo result generate list with search on some fields
; $fields = array ( id , name , address , city ); $tables = array ( customer ); $id = 1 ; $search = array ( name => fadjar nurswanto , address => tomang raya ); $object -> clear_all_assign(); $object -> setfields( $fields ); $object -> settables( $tables ); $object -> setsearch( $search ); if ( ! $object -> getquerysql()){ echo $object -> error; exit ;} else { $sql = $object -> result; echo $sql .
;}?>
类代码:
getconditions(); if ( ! $conditions ){ $this -> dbgdone( $funct ); return true ;} if ( ! is_array ( $conditions )) { $this -> error = $classname::$funct variable conditions not array ; return ; } for ( $i = 0 ; $i condition .= $conditions [ $i ][ condition ] . . $conditions [ $i ][ connection ] . ; } return true ; } function buildleftjoin() { $funct = buildleftjoin ; $classname = get_class ( $this ); if ( ! $this -> getleftjoin()){ $this -> error = $classname::$funct property leftjoin was empty ; return ;} $leftjoinvars = $this -> getleftjoin(); $hasil = false ; foreach ( $leftjoinvars as $leftjoinvar ) { @ $hasil .= left join . $leftjoinvar [ table ]; foreach ( $leftjoinvar [ on ] as $var ) { @ $condvar .= $var [ condition ] . . $var [ connection ] . ; } $hasil .= on ( . $condvar . ) ; unset ( $condvar ); } $this -> resultleftjoin = $hasil ; return true ; } function buildorder() { $funct = buildorder ; $classname = get_class ( $this ); if ( ! $this -> getorder()){ $this -> error = $classname::$funct property order was empty ; return ;} if ( ! $this -> getfields()){ $this -> error = $classname::$funct property fields was empty ; return ;} $fields = $this -> getfields(); $orders = $this -> getorder(); if ( ereg ( , , $orders )){ $orders = explode ( , , $order );} if ( ! is_array ( $orders )){ $orders = array ( $orders );} foreach ( $orders as $order ) { if ( ! is_numeric ( $order )){ $this -> error = $classname::$funct property order not numeric ; return ;} if ( $order > count ( $this -> fields)){ $this -> error = $classname::$funct max value of property sort is . count ( $this -> fields); return ;} @ $xorder .= $fields [ $order ] . , ; } $this -> resultorder = order by . substr ( $xorder , 0 ,- 1 ); return true ; } function buildsearch() { $funct = buildsearch ; $classname = get_class ( $this ); if ( ! $this -> getsearch()){ $this -> error = $classname::$funct property search was empty ; return ;} if ( ! $this -> getfields()){ $this -> error = $classname::$funct property fields was empty ; return ;} $fields = $this -> getfields(); $xvalue = $this -> getsearch(); if ( is_array ( $xvalue )) { foreach ( $fields as $field ) { if (@ $xvalue [ $field ]) { $values = explode ( , $xvalue [ $field ]); foreach ( $values as $value ) { @ $hasil .= $field . like '% . $value . %' or ; } if ( $hasil ) { @ $hasil_final .= ( . substr ( $hasil , 0 ,- 4 ) . ) and ; unset ( $hasil ); } } } $hasil = $hasil_final ; } else { foreach ( $fields as $field ) { $values = explode ( , $xvalue ); foreach ( $values as $value ) { @ $hasil .= $field . like '% . $value . %' or ; } } } $this -> resultsearch = substr ( $hasil , 0 ,- 4 ); return true ; } function clear_all_assign() { $this -> result = null ; $this -> resultsearch = null ; $this -> resultleftjoin = null ; $this -> result = null ; $this -> tables = array (); $this -> values = array (); $this -> fields = array (); $this -> conditions = array (); $this -> condition = null ; $this -> leftjoin = array (); $this -> sort = asc ; $this -> order = null ; $this -> search = null ; $this -> fieldsql = null ; $this -> valuesql = null ; $this -> partsql = null ; $this -> error = null ; return true ; } function combinefieldvalue( $manual = false ) { $funct = combinefieldspostvar ; $classname = get_class ( $this ); $fields = $this -> getfields(); $values = $this -> getvalues(); if ( ! is_array ( $fields )) { $this -> error = $classname::$funct variable fields not array ; return ; } if ( ! is_array ( $values )) { $this -> error = $classname::$funct variable values not array ; return ; } if ( count ( $fields ) != count ( $values )) { $this -> error = $classname::$funct count of fields and values not match ; return ; } for ( $i = 0 ; $i fieldsql .= $fields [ $i ] . , ; if ( $fields [ $i ] == pwd || $fields [ $i ] == password || $fields [ $i ] == pwd ) { @ $this -> valuesql .= password(' . $values [ $i ] . '), ; @ $this -> partsql .= $fields [ $i ] . =password(' . $values [ $i ] . '), ; } else { if ( is_numeric ( $values [ $i ])) { @ $this -> valuesql .= $values [ $i ] . , ; @ $this -> partsql .= $fields [ $i ] . = . $values [ $i ] . , ; } else { @ $this -> valuesql .= ' . $values [ $i ] . ', ; @ $this -> partsql .= $fields [ $i ] . =' . $values [ $i ] . ', ; } } } $this -> fieldsql = substr ( $this -> fieldsql , 0 ,- 1 ); $this -> valuesql = substr ( $this -> valuesql , 0 ,- 1 ); $this -> partsql = substr ( $this -> partsql , 0 ,- 1 ); return true ; } function getdeletesql() { $funct = getdeletesql ; $classname = get_class ( $this ); $tables = $this -> gettables(); if ( ! $tables || ! count ( $tables )) { $this -> dbgfailed( $funct ); $this -> error = $classname::$funct table was empty ; return ; } for ( $i = 0 ; $i getconditions()) { if ( ! $this -> buildcondition()){ $this -> dbgfailed( $funct ); return ;} $sql .= where . $this -> getcondition(); } $this -> result = $sql ; return true ; } function getinsertsql() { $funct = getinsertsql ; $classname = get_class ( $this ); if ( ! $this -> getvalues()){ $this -> error = $classname::$funct property values was empty ; return ;} if ( ! $this -> getfields()){ $this -> error = $classname::$funct property fields was empty ; return ;} if ( ! $this -> gettables()){ $this -> error = $classname::$funct property tables was empty ; return ;} if ( ! $this -> combinefieldvalue()){ $this -> dbgfailed( $funct ); return ;} $tables = $this -> gettables(); $sql = insert into . $tables [ 0 ] . ( . $this -> fieldsql . ) values ( . $this -> valuesql . ) ; $this -> result = $sql ; return true ; } function getupdatesql() { $funct = getupdatesql ; $classname = get_class ( $this ); if ( ! $this -> getvalues()){ $this -> error = $classname::$funct property values was empty ; return ;} if ( ! $this -> getfields()){ $this -> error = $classname::$funct property fields was empty ; return ;} if ( ! $this -> gettables()){ $this -> error = $classname::$funct property tables was empty ; return ;} if ( ! $this -> combinefieldvalue()){ $this -> dbgfailed( $funct ); return ;} if ( ! $this -> buildcondition()){ $this -> dbgfailed( $funct ); return ;} $tables = $this -> gettables(); $sql = update . $tables [ 0 ] . set . $this -> partsql . where . $this -> getcondition(); $this -> result = $sql ; return true ; } function getquerysql() { $funct = getquerysql ; $classname = get_class ( $this ); if ( ! $this -> getfields()){ $this -> error = $classname::$funct property fields was empty ; return ;} if ( ! $this -> gettables()){ $this -> error = $classname::$funct property tables was empty ; return ;} $fields = $this -> getfields(); $tables = $this -> gettables(); foreach ( $fields as $field ){@ $sql_raw .= $field . , ;} foreach ( $tables as $table ){@ $sql_table .= $table . , ;} $this -> result = select . substr ( $sql_raw , 0 ,- 1 ) . from . substr ( $sql_table , 0 ,- 1 ); if ( $this -> getleftjoin()) { if ( ! $this -> buildleftjoins()){ $this -> dbgfailed( $funct ); return ;} $this -> result .= . $this -> resultleftjoin; } if ( $this -> getconditions()) { if ( ! $this -> buildcondition()){ $this -> dbgfailed( $funct ); return ;} $this -> result .= where ( . $this -> condition . ) ; } if ( $this -> getsearch()) { if ( ! $this -> buildsearch()){ $this -> dbgfailed( $funct ); return ;} if ( $this -> resultsearch) { if ( eregi ( where , $this -> result)){ $this -> result .= and . $this -> resultsearch;} else { $this -> result .= where . $this -> resultsearch;} } } if ( $this -> getorder()) { if ( ! $this -> buildorder()){ $this -> dbgfailed( $funct ); return ;} $this -> result .= . $this -> resultorder; } if ( $this -> getsort()) { if (@ $this -> resultorder) { $this -> result .= . $this -> getsort(); } } return true ; } function getcondition(){ return @ $this -> condition;} function getconditions(){ if ( count (@ $this -> conditions) && is_array (@ $this -> conditions)){ return @ $this -> conditions;}} function getfields(){ if ( count (@ $this -> fields) && is_array (@ $this -> fields)){ return @ $this -> fields;}} function getleftjoin(){ if ( count (@ $this -> leftjoin) && is_array (@ $this -> leftjoin)){ return @ $this -> leftjoin;}} function getorder(){ return @ $this -> order;} function getsearch(){ return @ $this -> search;} function getsort(){ return @ $this -> sort ;} function gettables(){ if ( count (@ $this -> tables) && is_array (@ $this -> tables)){ return @ $this -> tables;}} function getvalues(){ if ( count (@ $this -> values) && is_array (@ $this -> values)){ return @ $this -> values;}} function setcondition( $input ){ $this -> condition = $input ;} function setconditions( $input ) { if ( is_array ( $input )){ $this -> conditions = $input ;} else { $this -> error = get_class ( $this ) . ::setconditions parameter input not array ; return ;} } function setfields( $input ) { if ( is_array ( $input )){ $this -> fields = $input ;} else { $this -> error = get_class ( $this ) . ::setfields parameter input not array ; return ;} } function setleftjoin( $input ) { if ( is_array ( $input )){ $this -> leftjoin = $input ;} else { $this -> error = get_class ( $this ) . ::setfields parameter input not array ; return ;} } function setorder( $input ){ $this -> order = $input ;} function setsearch( $input ){ $this -> search = $input ;} function setsort( $input ){ $this -> sort = $input ;} function settables( $input ) { if ( is_array ( $input )){ $this -> tables = $input ;} else { $this -> error = get_class ( $this ) . ::settables parameter input not array ; return ;} } function setvalues( $input ) { if ( is_array ( $input )){ $this -> values = $input ;} else { $this -> error = get_class ( $this ) . ::setvalues parameter input not array ; return ;} }}?>
更多关于php相关内容感兴趣的读者可查看本站专题:《php基于pdo操作数据库技巧总结》、《php运算与运算符用法总结》、《php网络编程技巧总结》、《php基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
您可能感兴趣的文章:php基于单例模式实现的mysql类php封装的连接mysql类及用法分析一个php mysql类 可以参考学习熟悉下十二个常见的php+mysql类免费cms系统php实现基于mysqli的model基类完整实例php使用mysqli类库实现完美分页效果的方法php格式化mysql返回float类型的方法php实现mysql简易操作类php简单操作mysql数据库的类
http://www.bkjia.com/phpjc/1119968.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1119968.htmltecharticlephp实现的通过参数生成mysql语句类完整实例,mysql语句 本文实例讲述了php实现的通过参数生成mysql语句类。分享给大家供大家参考,具体如下...