pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <tfoot id='sGH60'></tfoot>

    <small id='sGH60'></small><noframes id='sGH60'>

  • <i id='sGH60'><tr id='sGH60'><dt id='sGH60'><q id='sGH60'><span id='sGH60'><b id='sGH60'><form id='sGH60'><ins id='sGH60'></ins><ul id='sGH60'></ul><sub id='sGH60'></sub></form><legend id='sGH60'></legend><bdo id='sGH60'><pre id='sGH60'><center id='sGH60'></center></pre></bdo></b><th id='sGH60'></th></span></q></dt></tr></i><div class="55jflxl" id='sGH60'><tfoot id='sGH60'></tfoot><dl id='sGH60'><fieldset id='sGH60'></fieldset></dl></div>

        • <bdo id='sGH60'></bdo><ul id='sGH60'></ul>
        <legend id='sGH60'><style id='sGH60'><dir id='sGH60'><q id='sGH60'></q></dir></style></legend>
      1. Mysqli多行插入,簡單的多行插入查詢

        Mysqli multiple row insert, simple multi insert query(Mysqli多行插入,簡單的多行插入查詢)
        <i id='mv2Kd'><tr id='mv2Kd'><dt id='mv2Kd'><q id='mv2Kd'><span id='mv2Kd'><b id='mv2Kd'><form id='mv2Kd'><ins id='mv2Kd'></ins><ul id='mv2Kd'></ul><sub id='mv2Kd'></sub></form><legend id='mv2Kd'></legend><bdo id='mv2Kd'><pre id='mv2Kd'><center id='mv2Kd'></center></pre></bdo></b><th id='mv2Kd'></th></span></q></dt></tr></i><div class="pxjj577" id='mv2Kd'><tfoot id='mv2Kd'></tfoot><dl id='mv2Kd'><fieldset id='mv2Kd'></fieldset></dl></div>
      2. <small id='mv2Kd'></small><noframes id='mv2Kd'>

            <tbody id='mv2Kd'></tbody>

            <legend id='mv2Kd'><style id='mv2Kd'><dir id='mv2Kd'><q id='mv2Kd'></q></dir></style></legend>

              <tfoot id='mv2Kd'></tfoot>
                • <bdo id='mv2Kd'></bdo><ul id='mv2Kd'></ul>
                  本文介紹了Mysqli多行插入,簡單的多行插入查詢的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  如何使用 mysqli 插入此查詢?...

                  How do I insert this query with mysqli?...

                  INSERT INTO table (field1, field2, field3) VALUES ('value', 'value', 'value'), ('value', 'value', 'value'), ('value', 'value', 'value');
                  

                  通常在 mysql 中,這個查詢是直截了當的,將插入 3 行,我如何在 mysqli 中執行此操作而不使用準備好的語句,或者可能使用準備好的語句但不會太復雜?.我只是想知道是否有一種方法可以執行這樣的查詢,而無需在 PHP 中做額外的時髦事情.

                  Normally in mysql this query is straight forward and will insert 3 rows, how do I do this in mysqli without using a prepared statement or maybe using a prepared statement but without getting too complicated?. I just wish to know if there is a way to execute such query without doing extra funky stuff in PHP.

                  本質上,我有一些提取的數據,每個插入大約有 10 行(并且除了具有多行之外還需要多個插入),這就是我需要的.我只希望像我通常使用 mysql 所做的那樣使用查詢來執行此操作,而不是每行添加多個插入.

                  In essence, I have some extracted data that has around 10 rows per insert (and also needs multiple inserts in addition to having multiple rows), and this is what I need it for. I only wish to do this with a query as I have normally done it with mysql, and not add multiple insert as one per each row.

                  推薦答案

                  mysqli 類提供了許多不同的方法來完成插入,每種方法都有自己的優點.當然,其中之一應該適合您的需求.

                  The mysqli class provides a number of different ways of accomplishing your inserts, each with its own benefits. Certainly, one of them should fit your needs.

                  以下示例假設您未指定的提取數據"存儲在數組數組中:$bigArray[0...datasetsize][0...2].

                  The following examples assume that your unspecified "extracted data" is stored in an array of arrays: $bigArray[0...datasetsize][0...2].

                  mysqli 數據庫假定為 $db.

                  The mysqli database is assumed to be $db.

                  方法 1 - 老派

                  您可以像以往一樣直接進行操作,只需構建查詢字符串并使用它查詢數據庫即可.根據您的指定,一次捆綁 10 個插入物.下面的代碼顯示了一個這樣的包,并簡單地擴展到整個數據集 (bigArray).數據可能應該使用 mysqli::escape_string 進行轉義(此??處未完成).

                  You can do it straight forward like you are used to by simply building your query string and querying the database with it. Inserts are bundled 10 at a time, as you specified. The following code shows one such bundle and is trivially extended to the whole data set (bigArray). The data should probably be escaped using mysqli::escape_string (not done here).

                  在所有示例中,要插入的數據都假定為整數.

                  The data to be inserted is assumed to be integers in all examples.

                  $sql = "INSERT INTO testTable (fieldA, fieldB, fieldC) VALUES ";
                  for ($i = 0; $i < 10; ++$i)
                  {
                      if ($i > 0) $sql .= ", ";
                      $sql .= "({$bigArray[$i][0]}),({$bigArray[$i][1]}),({$bigArray[$i][2]})";
                  }
                  $db->query($sql);
                  

                  方法 2 - 盡可能簡單

                  如果您想使用準備好的語句和參數綁定,第一個嘗試可能如下所示.雖然不是最優的,但語句只準備一次.但是,每個插入都綁定了變量,這很浪費(但很簡單).由于未捆綁插入,因此示例循環了 10 個.

                  If you want to use a prepared statement and parameter binding, a first effort might look like the following. While not optimal, the statement is only prepared once. However, the variables are bound for each insert, which is wasteful (but simple). Since inserts are not bundled, the example loops over 10.

                  $statement = $db->prepare("INSERT INTO testTable (fieldA, fieldB, fieldC) VALUES (?,?,?)");
                  for ($i = 0; $i < 10; ++$i)
                  {
                      $statement->bind_param("iii",$bigArray[$i][0],$bigArray[$i][1],$bigArray[$i][2]);
                      $statement->execute();
                  }
                  

                  方法 3 - 優化

                  準備好的語句和多個插入組合實現的性能幾乎與方法 1 的原始插入查詢相同.實際結果將因您的設置而異,但在我的系統上使用本地和遠程數據庫進行的快速測試顯示了性能使用優化的方法更快幾個百分點,如果需要轉義方法 1 中的數據,則增加幾個百分點.

                  Prepared statements and multiple inserts combined enable performance which is nearly identical to the raw insert queries of Method 1. Actual results will vary depending on your setup, but a quick test on my system with both a local and a remote database showed performance a few percentage points faster with the optimized method, increasing a few points more if data in Method 1 needs to be escaped.

                  以下使用call_user_func_array,但如果您知道每次要捆綁多少個插入并直接構建調用bind_param,則可以避免這種情況.這將進一步略微提高性能.

                  The following uses call_user_func_array, but you could avoid that if you know how many inserts you want to bundle each time and build call bind_param directly. That would further increase performance slightly.

                  為清楚起見,此示例包括外循環并假設要插入的總行數為 10k(即 bigArray[0..9999][0..2]).

                  For clarity, this examples includes the outer loop and assumes 10k total lines to be inserted (i.e. bigArray[0..9999][0..2]).

                  $sql = "INSERT INTO testTable (fieldA,fieldB,fieldC) VALUES (?,?,?)".str_repeat(",(?,?,?)",9);
                  $statement = $db->prepare($sql);
                  
                  // This is the type string used by statement::bind_param. 
                  // Example assumes all INTs.
                  $types = (array)str_repeat("i",30);
                  
                  $values = array_fill(0,30,0); // A bit of unneeded variable init.
                  
                  // * See notes following code snippet on why the intermediate array is used.
                  $intermediate = array();
                  for ($n = 0; $n < 30; ++$n)
                  {
                      $intermediate[$n] = &$values[$n];
                  }
                  
                  call_user_func_array(array(&$statement, "bind_param"), array_merge($types,$f));
                  
                  for ($j = 0; $j < 1000; ++$j)
                  {
                      for ($i = 0; $i < 10; ++$i)
                      {
                          $values[$i*3] = $bigArray[$i][0];
                          $values[$i*3+1] = $bigArray[$i][1];
                          $values[$i*3+2] = $bigArray[$i][2];
                      }
                      $statement->execute();
                  }
                  
                  // call_user_func_array with bind_param requires the values be 
                  // passed by reference which is evaluated only on the initial 
                  // call. Using $values[...] = &$bigArray[...] below won't work
                  // and an intermediate array referencing $values is used. This 
                  // bit of "extra funky stuff" can be avoided at a very slight 
                  // performance penalty by setting $values[...] = $bigArray[...] 
                  // AND EVALUATING EACH TIME (move call_user_func_array
                  // inside the outer loop, i.e. right above $statement->execute()).
                  

                  這篇關于Mysqli多行插入,簡單的多行插入查詢的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  store_result() and get_result() in mysql returns false(mysql 中的 store_result() 和 get_result() 返回 false)
                  Call to undefined function mysqli_result::num_rows()(調用未定義的函數 mysqli_result::num_rows())
                  PHP Prepared Statement Problems(PHP 準備好的語句問題)
                  mysqli_fetch_array returning only one result(mysqli_fetch_array 只返回一個結果)
                  PHP MySQLi Multiple Inserts(PHP MySQLi 多次插入)
                  How do I make sure that values from MySQL keep their type in PHP?(如何確保 MySQL 中的值在 PHP 中保持其類型?)

                    • <bdo id='wHEJM'></bdo><ul id='wHEJM'></ul>
                            <tbody id='wHEJM'></tbody>
                          • <i id='wHEJM'><tr id='wHEJM'><dt id='wHEJM'><q id='wHEJM'><span id='wHEJM'><b id='wHEJM'><form id='wHEJM'><ins id='wHEJM'></ins><ul id='wHEJM'></ul><sub id='wHEJM'></sub></form><legend id='wHEJM'></legend><bdo id='wHEJM'><pre id='wHEJM'><center id='wHEJM'></center></pre></bdo></b><th id='wHEJM'></th></span></q></dt></tr></i><div class="hvbjpdh" id='wHEJM'><tfoot id='wHEJM'></tfoot><dl id='wHEJM'><fieldset id='wHEJM'></fieldset></dl></div>
                            <legend id='wHEJM'><style id='wHEJM'><dir id='wHEJM'><q id='wHEJM'></q></dir></style></legend>

                            <small id='wHEJM'></small><noframes id='wHEJM'>

                            <tfoot id='wHEJM'></tfoot>

                            主站蜘蛛池模板: 中细软知识产权_专业知识产权解决方案提供商 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 炉门刀边腹板,焦化设备配件,焦化焦炉设备_沧州瑞创机械制造有限公司 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 间甲酚,间甲酚厂家-山东祥东新材料 | 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 广东青藤环境科技有限公司-水质检测| 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 丙烷/液氧/液氮气化器,丙烷/液氧/液氮汽化器-无锡舍勒能源科技有限公司 | 回转支承-转盘轴承-回转驱动生产厂家-洛阳隆达轴承有限公司 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 耐驰泵阀管件制造-耐驰泵阀科技(天津)有限公司 | 低温等离子清洗机(双气路进口)-嘉润万丰 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 螺旋绞龙叶片,螺旋输送机厂家,山东螺旋输送机-淄博长江机械制造有限公司 | LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 耐热钢-耐磨钢-山东聚金合金钢铸造有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 定坤静电科技静电消除器厂家-除静电设备 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 上海三信|ph计|酸度计|电导率仪-艾科仪器 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 |