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

<tfoot id='hPj98'></tfoot>

  • <legend id='hPj98'><style id='hPj98'><dir id='hPj98'><q id='hPj98'></q></dir></style></legend>

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

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

          <bdo id='hPj98'></bdo><ul id='hPj98'></ul>

        PDO bindParam 問題

        PDO bindParam issue(PDO bindParam 問題)
          • <bdo id='MuXOm'></bdo><ul id='MuXOm'></ul>

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

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

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

                  <tfoot id='MuXOm'></tfoot>

                    <tbody id='MuXOm'></tbody>

                  本文介紹了PDO bindParam 問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  可能的重復:
                  PHP PDO 語句可以接受表名作為參數嗎?

                  我的班級中有一個函數遇到了一些麻煩.這里的功能

                  I have a function in my class which is doing some trouble. Here the function

                  function insert($table,$column = array(),$value = array())
                  {
                      $array1 = implode(",", $column);
                      $array2 = implode(",", $value);
                  
                      try 
                      { 
                          $sql = $this->connect->prepare("INSERT INTO :table (:date1) VALUES (:date2)");  
                          $sql->bindParam(':table',$table, PDO::PARAM_STR);
                          $sql->bindParam(':data1',$array1, PDO::PARAM_STR);
                          $sql->bindParam(':data2',$array2, PDO::PARAM_STR);
                  
                          $sql->execute();
                  
                      }  
                      catch(PDOException $e) 
                      {  
                          echo $e->getMessage();  
                      }  
                  }
                  

                  我調用函數:

                  -> insert('coupons',array('categorie','name','link','code','id'),array('test11','test','test','test','NULL'));
                  

                  我得到的錯誤是:

                  警告:PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: 無效的參數號:參數未在 C:xampphtdocsMYFRAMEWORKlibdatabase.class.php 中定義在第 46 行

                  Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:xampphtdocsMYFRAMEWORKlibdatabase.class.php on line 46

                  第 46 行是:

                  $sql->execute();
                  

                  所以現在我真的不明白問題出在哪里.有什么指點嗎?

                  So now I don't really see where the issue is. Any pointers?

                  推薦答案

                  PDO 綁定值數據,而不是表名和列名.

                  您誤解了綁定的使用.您不能使用 PDO 綁定表名和列名.您綁定數據以插入 INTO 這些列.您需要使用字符串操作構造 SQL 以包含表名和列.

                  PDOs bind value data, not table and column names.

                  You are misunderstanding the use of bindings. You cannot bind table and column names with PDO. You bind data to insert INTO those columns. You need to construct the SQL to include the table names and columns using string operations.

                  我已將您的 $column 和 $value 重命名為 $column_array, $value_array 以說明它們是什么,并假設每個都是一個簡單的數組:$column_array = array('column1', 'column2', ...) 等

                  I've renamed your $column and $value to $column_array, $value_array to make it clear what they are, and assumed that each is a simple array: $column_array = array('column1', 'column2', ...) etc.

                  $placeholders = array_map(function($col) { return ":$col"; }, $column_array);
                  
                  $bindvalues = array_combine($placeholders , $value_array);
                  

                  $placeholders 現在看起來像這樣:

                  $placeholders now looks like this:

                  $placeholders = array(
                          ':column1',
                          ':column2',
                           ...
                      );
                  

                  $bindvalues 現在看起來像這樣:

                  $bindvalues now looks like this:

                  $bindvalues = array(
                          ':column1'=>'value1',
                          ':column2'=>'value2',
                           ...
                      );
                  

                  構建、準備、執行

                  $sql = $this->connect->prepare("INSERT INTO $table (" .implode(",", $column_array) .") VALUES (". implode(",", $placeholders) . ")";
                  

                  這將為您提供一份準備好的聲明:

                  This will give you a prepared statement of the form:

                  $sql = INSERT INTO table_name (column1, column2, ...) VALUES (:column1, :column2, ...)
                  

                  然后您可以執行準備好的語句并將 $values 作為參數傳遞.

                  You can then execute the prepared statement and pass the $values as an argument.

                  $sql->execute($bindValues);
                  

                  注意:

                  • 必須提到的一個警告.確保您的原始數據已針對 SQL 注入進行了清理. PDO 會處理綁定值的問題,但是如果您從 $_POST 數據構建列,這很容易受到攻擊,需要進行消毒.
                  • Note:

                    • One caveat that must be mentioned. Make sure that your original data has been sanitized against SQL Injection. PDO's take care of that for the bound values, but if you are constructing the columns from, say, $_POST data this is vulnerable and needs to be sanitized.
                    • 這篇關于PDO bindParam 問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                  相關文檔推薦

                  MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                  Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                  PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                  mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                  Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                  MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)
                    <tbody id='55ZCI'></tbody>

                  <tfoot id='55ZCI'></tfoot>

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

                      <small id='55ZCI'></small><noframes id='55ZCI'>

                          <legend id='55ZCI'><style id='55ZCI'><dir id='55ZCI'><q id='55ZCI'></q></dir></style></legend>
                          • 主站蜘蛛池模板: 硬齿面减速机[型号全],ZQ减速机-淄博久增机械| 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 警用|治安|保安|不锈钢岗亭-售货亭价格-垃圾分类亭-移动厕所厂家-苏州灿宇建材 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 沈阳网站建设_沈阳网站制作_沈阳网页设计-做网站就找示剑新零售 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 济南拼接屏_山东液晶拼接屏_济南LED显示屏—维康国际官网 | 中原网视台| 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 建筑资质代办-建筑资质转让找上海国信启航| 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制 | 百度网站优化,关键词排名,SEO优化-搜索引擎营销推广 | 无水硫酸铝,硫酸铝厂家-淄博双赢新材料科技有限公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 航空连接器,航空插头,航空插座,航空接插件,航插_深圳鸿万科 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 上海公众号开发-公众号代运营公司-做公众号的公司企业服务商-咏熠软件 | 机床主轴维修|刀塔维修|C轴维修-常州翔高精密机械有限公司 | 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 |