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

    <bdo id='9gjox'></bdo><ul id='9gjox'></ul>

        <small id='9gjox'></small><noframes id='9gjox'>

        <legend id='9gjox'><style id='9gjox'><dir id='9gjox'><q id='9gjox'></q></dir></style></legend>
      1. <tfoot id='9gjox'></tfoot>
      2. <i id='9gjox'><tr id='9gjox'><dt id='9gjox'><q id='9gjox'><span id='9gjox'><b id='9gjox'><form id='9gjox'><ins id='9gjox'></ins><ul id='9gjox'></ul><sub id='9gjox'></sub></form><legend id='9gjox'></legend><bdo id='9gjox'><pre id='9gjox'><center id='9gjox'></center></pre></bdo></b><th id='9gjox'></th></span></q></dt></tr></i><div class="1bxj7vf" id='9gjox'><tfoot id='9gjox'></tfoot><dl id='9gjox'><fieldset id='9gjox'></fieldset></dl></div>

        如何使用 mysqli 編寫一個安全的 SELECT 查詢,該查

        How to write a secure SELECT query which has a variable number of user-supplied values with mysqli?(如何使用 mysqli 編寫一個安全的 SELECT 查詢,該查詢具有可變數量的用戶提供的值?) - IT屋-程序員軟件開發技術

          <tfoot id='JKAlt'></tfoot>
          1. <i id='JKAlt'><tr id='JKAlt'><dt id='JKAlt'><q id='JKAlt'><span id='JKAlt'><b id='JKAlt'><form id='JKAlt'><ins id='JKAlt'></ins><ul id='JKAlt'></ul><sub id='JKAlt'></sub></form><legend id='JKAlt'></legend><bdo id='JKAlt'><pre id='JKAlt'><center id='JKAlt'></center></pre></bdo></b><th id='JKAlt'></th></span></q></dt></tr></i><div class="5rdnbtn" id='JKAlt'><tfoot id='JKAlt'></tfoot><dl id='JKAlt'><fieldset id='JKAlt'></fieldset></dl></div>
            <legend id='JKAlt'><style id='JKAlt'><dir id='JKAlt'><q id='JKAlt'></q></dir></style></legend>

              <tbody id='JKAlt'></tbody>
              • <bdo id='JKAlt'></bdo><ul id='JKAlt'></ul>
              • <small id='JKAlt'></small><noframes id='JKAlt'>

                  本文介紹了如何使用 mysqli 編寫一個安全的 SELECT 查詢,該查詢具有可變數量的用戶提供的值?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我需要一些幫助,以便在我的代碼中執行 foreach.

                  I would like some help to execute a foreach into my code.

                  我將多個值發布到用戶名中:作為 username[0] = user1 , user2

                  I post multiple value into username : as username[0] = user1 , user2

                  但是我的 foreach 給我的結果只是最后一個條目或什么都沒有.

                  but my foreach gives me result like only the last entry or nothing.

                  $companyname = $_POST['companyname'];
                  $username_grab = $_POST['username'];
                  $username = implode(",", $username_grab);
                  
                  foreach ($username_grab as $value){
                      $value = $username_grab;
                  
                      $sql = "select * from linked_user where username = '$value' and company_name = '$companyname'";
                      $res = mysqli_query($conn,$value);
                      while($row = mysqli_fetch_array($res)){
                          $returnValue['username'] = $row['username'];
                          $returnValue['user_scid'] = $row['user_scid'];
                      }
                  }
                  echo json_encode($returnValue);
                  ?>
                  

                  推薦答案

                  您要執行的任務是帶有可變數量占位符的準備好的語句.這在 PDO 中更簡單,但我將向您展示 mysqli 面向對象風格的方法.不管怎樣,總是打印一個 json 編碼的數組,這樣你的接收腳本就知道需要什么樣的數據類型.

                  The task you are to perform is a prepared statement with a variable number of placeholders. This is simpler in PDO, but I'll show you the mysqli object-oriented style approach. No matter what, always print a json encoded array so that your receiving script knows what kind of data type to expect.

                  我有一個片段,其中包括一整套診斷和錯誤檢查.我沒有測試過這個腳本,但它與我的這篇文章非常相似.

                  I had a snippet laying around that includes a full battery of diagnostics and error checking. I have not tested this script, but it has quite the resemblance to this post of mine.

                  if (empty($_POST['companyname']) || empty($_POST['username'])) {  // perform any validations here before doing any other processing
                      exit(json_encode([]));
                  }
                  
                  $config = ['localhost', 'root', '', 'dbname'];  // your connection credentials or use an include file
                  $values = array_merge([$_POST['companyname']], explode(',', $_POST['username']));  // create 1-dim array of dynamic length
                  $count = sizeof($values);
                  $placeholders = implode(',', array_fill(0, $count - 1, '?'));  // -1 because companyname placeholder is manually written into query
                  $param_types = str_repeat('s', $count);
                  if (!$conn = new mysqli(...$config)) {
                      exit(json_encode("MySQL Connection Error: <b>Check config values</b>"));  // $conn->connect_error
                  }
                  if (!$stmt = $conn->prepare("SELECT user_scid, user_scid FROM linked_user WHERE company_name = ? AND username IN ({$placeholders})")) {
                      exit(json_encode("MySQL Query Syntax Error: <b>Failed to prepare query</b>"));  // $conn->error
                  }
                  if (!$stmt->bind_param($param_types, ...$values)) {
                      exit(json_encode("MySQL Query Syntax Error: <b>Failed to bind placeholders and data</b>"));  // $stmt->error;
                  }
                  if (!$stmt->execute()) {
                      exit(json_encode("MySQL Query Syntax Error: <b>Execution of prepared statement failed.</b>"));  // $stmt->error;
                  }
                  if (!$result = $stmt->get_result()) {
                      exit(json_encode("MySQL Query Syntax Error: <b>Get Result failed.</b>")); // $stmt->error;
                  }
                  exit(json_encode($result->fetch_all(MYSQLI_ASSOC)));
                  

                  如果您不想要所有這些診斷條件和評論的膨脹,這里是應該執行相同的基本等效:

                  If you don't want the bloat of all of those diagnostic conditions and comments, here is the bare bones equivalent which should perform identically:

                  if (empty($_POST['companyname']) || empty($_POST['username'])) {
                      exit(json_encode([]));
                  }
                  
                  $values = explode(',', $_POST['username']);
                  $values[] = $_POST['companyname'];
                  $count = count($values);
                  $placeholders = implode(',', array_fill(0, $count - 1, '?'));
                  $param_types = str_repeat('s', $count);
                  
                  $conn = new mysqli('localhost', 'root', '', 'dbname');
                  $stmt = $conn->prepare("SELECT user_scid, user_scid FROM linked_user WHERE username IN ({$placeholders}) AND company_name = ?");
                  $stmt->bind_param($param_types, ...$values);
                  $stmt->execute();
                  $result = $stmt->get_result();
                  exit(json_encode($result->fetch_all(MYSQLI_ASSOC)));
                  

                  這篇關于如何使用 mysqli 編寫一個安全的 SELECT 查詢,該查詢具有可變數量的用戶提供的值?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持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 中保持其類型?)
                  <tfoot id='oB2iE'></tfoot>

                • <small id='oB2iE'></small><noframes id='oB2iE'>

                    <tbody id='oB2iE'></tbody>
                    <bdo id='oB2iE'></bdo><ul id='oB2iE'></ul>

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

                            主站蜘蛛池模板: 北京开源多邦科技发展有限公司官网| 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | 北京开源多邦科技发展有限公司官网 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 棕刚玉-白刚玉厂家价格_巩义市东翔净水材料厂 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 灰板纸、灰底白、硬纸板等纸品生产商-金泊纸业| 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 杭州|上海贴标机-百科| 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 芝麻黑-芝麻黑石材厂家-永峰石业 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 |