mysql 以数组的形式插入更新表

Posted zjfeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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="1" />  
      框2:<input type="text" name="b" value="2" />  
      框3:<input type="text" name="c" value="3" /> 
        框4:<input type="text" name="d" value="4" />    
      <input type="submit" name= "Download" vaue="Download" />  
</form>

这里只写出生成mysql语句的代码!

以上是关于mysql 以数组的形式插入更新表的主要内容,如果未能解决你的问题,请参考以下文章

我怎么知道以表格形式传递它的值或数组

使用循环将多个相同形式的数组插入到一个表中

如何将值插入表中并使用一个按钮更新另一个表中的值?

MYSQL从另一个表更新数据,如果存在,否则插入[重复]

php中一个二维数组,怎么吧数组中的数据作为value插入到数据库某个表中

以 HTML 形式更新 MySQL 行的 jQuery datepicker