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

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

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

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

        PDO:“无效的参数号"用相同的值替换多个参数

        时间:2023-10-05
          <tfoot id='rOKsY'></tfoot>
              <bdo id='rOKsY'></bdo><ul id='rOKsY'></ul>

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

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

                  <legend id='rOKsY'><style id='rOKsY'><dir id='rOKsY'><q id='rOKsY'></q></dir></style></legend>
                  本文介绍了PDO:“无效的参数号"用相同的值替换多个参数时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  如果我的参数在查询中多次出现,我该如何绑定,如下所示?

                  How do I bind my parameter if it appears multiple times in the query as follows?

                  $STH = $DBH->prepare("SELECT * FROM $table WHERE firstname LIKE :string OR lastname LIKE :string");
                  
                  $STH->bindValue(':string', '%'.$string.'%', PDO::PARAM_STR);
                  $result = $STH->execute();
                  

                  推荐答案

                  您提到了准备语句的两个参数(同名),但您只为第一个参数提供了一个值(这就是错误所在).

                  You mentioned two parameters (with the same name) for the prepare statement, yet you supply a value for the first parameter only (that's what the error was about).

                  不太清楚 PDO 如何在内部解决相同参数名称的问题,但您总是可以避免这种情况.

                  Not quite sure how PDO internally solved the same-parameter-name issue, but you can always avoid that.

                  两种可能的解决方案:

                  $sql = "select * from $table ".
                         "where "
                         "first_name like concat('%', :fname, '%') or ".
                         "last_name  like concat('%', :lname, '%')";
                  $stmt= $DBH->prepare($sql);
                  $stmt->bindValue(':fname', $string, PDO::PARAM_STR);
                  $stmt->bindValue(':lname', $string, PDO::PARAM_STR);
                  

                  <小时>

                  $sql = "select * from $table ".
                         "where "
                         "first_name like concat('%', ?, '%') or ".
                         "last_name  like concat('%', ?, '%')";
                  $stmt= $DBH->prepare($sql);
                  $stmt->bindValue(1, $string, PDO::PARAM_STR);
                  $stmt->bindValue(2, $string, PDO::PARAM_STR);
                  

                  <小时>

                  顺便说一下,您现有的方式仍然存在 SQL 注入问题.


                  By the way, the existing way you have done still has SQL injection issues.

                  这篇关于PDO:“无效的参数号"用相同的值替换多个参数时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:lastInsertId 在 Postgresql 中不起作用 下一篇:PHP PDO - 使用 MySQL 变量

                  相关文章

                  最新文章

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

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

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

                  <tfoot id='v3LR1'></tfoot>

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