mysql insert into 以数组的形式插入表
在项目中用php+mysql,需要插入数据,但是数据库表字段又很长,如果用常规的insert into table (c) values (‘dd’)的话,将是很长的sql语句,而且一不小心,就弄错了。所以一般都用数组来操作,好多框架都有专门的功能,例如thinkphp的表映射,可用
但是原生的怎么做,下面是我总结的,虽然繁琐了一点,但绝对可行;例:
- $link = mysql_connect(‘localhost’,’root’,’pwd’);
- mysql_select_db(‘db’,$link);
- $data[‘a’] = $lpost[‘a’];
- $data[‘b’] = $lpost[‘b’];
- $data[‘c’] = $lpost[‘c’];
- $data[‘c’] = $lpost[‘c’];
- $data[‘d’] = $lpost[‘d’];
- $data[‘e’] = $lpost[‘e’];
- $data[‘f’] = $lpost[‘f’];
- $data[‘g’] = $lpost[‘g’];
- //a,b,c,d,e,f,g为表的字段
- foreach($data as $k=>$v){
- $k1[] = ‘`’.$k.’`’; //将字段作为一个数组;
- $v1[] = ‘”‘.$v.'”‘; //将插入的值作为一个数组;
- }
- $strv.=implode(‘,’,$v1);
- $strk.=implode(“,”,$k1);
- $sql = “insert into tb ($strk) values ($strv)”;
- mysql_query($sql);
目前,就这样做,还没有想更好的方法。