国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

用一條mysql語句插入多條數據

2020-01-18 23:06:13
字體:
來源:轉載
供稿:網友

       假如有一個數據表A:

id name title addtime

        如果需要插入n條數據 :

$time= time();$data = array(  array(   'name'=>'name1','title'=>'title1','addtime'=>$time;  ),  array(   'name'=>'name2','title'=>'title2','addtime'=>$time;  ),  array(   'name'=>'name3','title'=>'title3','addtime'=>$time;  ),  ...  array(   'name'=>'nameN','title'=>'titleN','addtime'=>$time;  ),  );

   之前我的想法會是,通過數據構造多條插入語句,循環調用 。如:     

$sql1 = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name1','title1','".$time."')";$sql2 = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name2','title2','".$time."')";......$sqlN = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('nameN','titleN','".$time."')";

   之后發現了sql的insert語句可以一次插入多條:

$sql = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name1','title1','".$time."'),";$sql .= "('name2','title2','".$time."'),";$sql .= "('name3','title3','".$time."'),";.....$sql .= "('nameN','titleN','".$time."')";

       通過","號將多個數據分隔開來,就可以能過一條sql操作來解決多個數據的插入,之前試驗時,在插入數據條數為30的情況下,一次插入與多次插入同樣數據的速度相比,一次插入快了近9倍。同時,因為插入操作只有一次,所以也類似事務操作,插入失敗則全失敗,插入成功則全成功,使數據的管理更加方便。所以,如果有多條數據需要插入同一個表的,盡量用這種方式。

以前插入多條數據庫記錄時,常這么寫:

$b = 14;for($a=0;$a<100;$a++){   $sql = " INSERT INTO `roles` (`uid`,`rid`) VALUES (".$a.",".$b.")";   mysql_query($sql);}

但這種寫法效率低下,需要多次執行sql語句。如果你用過phpmyadmin導入數據,其實你會發現,上面的語句其實可以這么寫

   INSERT INTO `roles` (`uid`,`rid`) VALUES       (534,14),(535,14),(536,14),(537,14),(539,14)

所以原來的代碼可以這么改寫

 $b = 14;for($a=0;$a<100;$a++){  if($a==0)     $sql = "INSERT INTO `roles` (`uid`,`rid`) VALUES (".$a.",".$b.")";  else    $sql. = ",(".$a.",".$b.")";}mysql_query($sql);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 雅江县| 武威市| 宁河县| 新乡市| 萨嘎县| 始兴县| 常山县| 新蔡县| 柘城县| 苍溪县| 仪陇县| 北流市| 建昌县| 鸡泽县| 威海市| 平塘县| 榆社县| 瑞金市| 忻城县| 兴宁市| 临沂市| 灌南县| 大安市| 靖州| 平定县| 娱乐| 阜平县| 泸州市| 北安市| 靖边县| 新巴尔虎右旗| 吉林省| 绿春县| 巴中市| 尼勒克县| 榆树市| 文水县| 新绛县| 兴文县| 宿州市| 响水县|