首页 > 代码库 > mysql 以数组的形式插入更新表
mysql 以数组的形式插入更新表
在项目中用php+mysql,需要插入数据,但是数据库表字段又很长,如果用常规的insert into table (c) values (‘dd‘)的话,将是很长的sql语句,而且一不小心,就弄错了。
所以一般都用数组来操作,好多框架都有专门的功能,例如thinkphp的表映射,可用
$result= $model->add($post) //$post为和表字段对应的数组
但是原生的怎么做,下面是我总结的,虽然看似繁琐了一点,但绝对比原来有效率;代码如下:
<?php //a,b,c,d为表的字段,在我实际的项目中字段有好多 $data[‘a‘] = $_POST[‘a‘]; $data[‘b‘] = $_POST[‘b‘]; $data[‘c‘] = $_POST[‘c‘]; $data[‘d‘] = $_POST[‘d‘]; foreach($data as $k=>$v){ $k1[] = ‘`‘.$k.‘`‘; //将字段作为一个数组; $v1[] = ‘"‘.$v.‘"‘; //将插入的值作为一个数组; } $strv.=implode(‘,‘,$v1); $strk.=implode(",",$k1); echo ‘<br>以下为插入代码‘; $sql = "insert into tb ($strk) values ($strv)"; echo $sql; echo ‘<br>以下为更新代码‘; echo ‘<br>‘; foreach($data as $k=>$v){ $str[] = "`".$k."` = ‘".$v."‘"; //将字段作为一个数组; } $strs=implode(‘,‘,$str); $sql = "update tb set $strs where id=1"; echo $sql; ?> <form action="" method="post" name="asp"> 框1:<input type="text" name="a" value="http://www.mamicode.com/1" /> 框2:<input type="text" name="b" value="http://www.mamicode.com/2" /> 框3:<input type="text" name="c" value="http://www.mamicode.com/3" /> 框4:<input type="text" name="d" value="http://www.mamicode.com/4" /> <input type="submit" name= "Download" vaue="Download" /> </form>
这里只写出生成mysql语句的代码!
mysql 以数组的形式插入更新表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。