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語句的代碼!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM