mysql 以數組的形式插入更新表

來源:互聯網
上載者:User

標籤:post   orm   log   res   mod   sql語句   type   think   功能   

在項目中用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 以數組的形式插入更新表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.