自动生成简单的sql语句
来源:互联网 发布:中国国家网络安全局 编辑:程序博客网 时间:2024/05/18 00:25
$sql .= "id='" . $arr['id'] . "'";$sql .= "id='{$arr['id']}'";$sql .= "id='$arr[id]'";
最近试了一下生成sql语句不同写法的速度,在上面三种中, 第三种最慢,但没慢多少(顶多20%)。
第一种比较麻烦,但方便写成 $sql .= "id='" . func( $arr['id'] ) . "'"; 。至于把在双引号中的变量用{}括起来,是一个好的php编程习惯。但不要犯下面的错误。
最慢的是这种写法 -- $sql .= "id='{$arr[id]}'"; 。慢几倍啊。
很多的 insert和update语句都是重复劳动 。所以最近写了两个函数,应该可以应付多数情况。如下。
function create_insert($arr_data, $arr_in_up){$sql = '(';$sql2 = '';foreach($arr_in_up as $k=>$v){$sql .= $k . ',';$sql2 .= add_comma( $arr_data[$v] );}return substr($sql, 0, -1) . ') values (' . substr($sql2, 0, -1) . ');';}function create_update($arr_data, $arr_in_up){$sql = ' ';foreach($arr_in_up as $k=>$v){$sql .= $k . '=' . add_comma( $arr_data[$v] );}return substr($sql, 0, -1) . ' ';}function add_comma($str){if($str == '' || $str == 'undefined'){return 'NULL,';}else{return '\'' . htmlspecialchars($str) . '\',';}}
//使用方法
$arr = Get_Post_Get();//用pg_sql什么的转义$arr['time'] = date('Y-m-d g:i:s');$arr_in_up = array('id' => 'id','date' => 'time');//$arr_in_up = array();//$arr_in_up['id'] = 'id';//$arr_in_up['date'] = 'time';$sql = 'insert into test ' . create_insert($arr, $arr_in_up);
很干净的代码。不过有时候写$arr_in_up也会很长,可以让程序自动生成。
我的方法是先把$arr_in_up的值放到 一个csv文件中,反正我们公司的数据库说明也是类似的表格格式,很方便拷。
id,id,x
date,time,x
abc,efg,
csv大约就是这样
//读取CSV$row = 1;$handle = fopen('insert.csv','r');while ($data = fgetcsv($handle, 1000, ",")){$num = count($data);$row++;for ($i=0; $i < $num; $i++) {if ($i==0){$aaa[]=$data[$i];}if ($i==1){$aaa1[]=$data[$i];}if ($i==2){$aaa2[]=$data[$i];}}} //$arr_in_up = '$arr_in_up';$i=0;foreach($aaa as $val){if( $aaa2[$i] != '' )//如果csv的第三格为空就不输出{$b__ .= "{$arr_in_up}['{$val}'] = '{$aaa1[$i]}';";}$i++;}$i=0;//echo $a__;echo '';echo $b__;
打开php网页,看源代码,就看到自动生成的代码了。
- 自动生成简单的sql语句
- 自动生成Insert Into 的SQL语句
- 关于SQL语句的自动生成
- 自动生成SQL语句的工具类
- 关于SQL语句的自动生成
- PowerDesigner自动生成SQL语句
- 自动生成sql insert 语句
- Python自动生成sql语句
- Mybatis自动生成sql语句
- thinkphp如何查看方法自动sql生成的sql语句
- 关于SQL语句的自动生成!(一)
- 关于SQL语句的自动生成!(二)
- 关于SQL语句的自动生成!(三)
- 关于SQL语句的自动生成!(四)
- 关于SQL语句的自动生成!(五)
- asp根据表单自动生成sql语句的函数
- 利用"SQL"语句自动生成序号的两种方式
- Oracle自动生成数据字典的SQL语句
- 【例程】MSP430 FFT算法
- HDU3786 找出直系亲属(并查集)
- 【例程】MSP430 LCD1602程序
- arcgis server javascriptAPI3.0本地部署步骤
- LINUX网络编程之套接字
- 自动生成简单的sql语句
- 【例程】MSP430 AD转换实例
- spring mvc 系列视频教程
- C#中string.Empty、""和null 之间的区别
- 我的Android应用程序汇总(20120923更新)
- 51单片机模块化编程初识
- 关于在c#中创建用户控件后,winform应用程序在调用中无法通过点击用户控件的子控件为其自动添加事件代码的问题
- ui线程与后台线程:Message和Runnable
- ZOJ 3167 Find 7 Faster Than John Von Neumann