php-自动生成sql语句

时间:2023-03-09 04:27:27
php-自动生成sql语句

前两天学习到的知识,挺有用的,因此这里做个分享

function AutoCreateSql($tab,$dataarr,$mode='insert',$where=' 1 and 1 limit 1'){

  //形如  insert into test(t1,t2) values('v1','v2')    update test set t1='v1',t2='v2' where id = 1   

 //delete 语句的参数 应该 是 表  where 条件   所以可以另写一个函数 

  //因为查询语句样式较多  怎样写还在思考中 若是有朋友已经会了请指点下小弟     言而总之 就是 没写出来,目前只有这两种语句

//对 $dataarr 数组的说明  这是构造的一个特殊的数组  其键值就是表中的字段名  其元素值就是表中的字段对应的值

    if(!is_arr($data_arr)){

          return false;

    }

      if($mode == 'update'){

        $sql = 'update '.$tab.' set ';

                           foreach($dataarr as $k=>$v){

          $sql.=$k.'='. ".".$v".".',';

        }

          $sql = rtrim($sql,','); //去掉最右边的,

       return $sql;

     }

    $sql ='insert into '.$tab;

    $ziduan = implode(",",array_keys($dataarr));//取得所有的键值并以,拼成字符串---这样做符合insert的写法

              $sql .= '( '.$ziduan.' ) ';

    $ziduanval = implode("','",array_values($dataarr));//取得所有的键值并以','拼成字符串---这样做符合insert的写法

    $sql .= ' values ( \' '.$ziduanval.' \') ';

    return $sql

}