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

        <tfoot id='KAgEG'></tfoot>

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

      1. 在 PDO 中强类型参数的原因?

        时间:2023-10-05
          <bdo id='Y244z'></bdo><ul id='Y244z'></ul>
          1. <small id='Y244z'></small><noframes id='Y244z'>

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

              • <tfoot id='Y244z'></tfoot>
                  本文介绍了在 PDO 中强类型参数的原因?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  当您将参数绑定到 SQL 语句时,您可以提供类似 PDO::PARAM_STR 的参数类型.如果不这样做,请键入默认为 PDO::PARAM_STR.具体设置每个参数的类型可能是什么原因?PDO::PARAM_STR 可以使用任何参数,至少在 MySQL 中我知道.我认为即使使用 PDO::PARAM_STR 也可以使用 BLOB 列.

                  When you bind parameters to SQL statement, you can provide parameter type like PDO::PARAM_STR. If you don't, type defaults to PDO::PARAM_STR. What can be the reasons to specifically set the type of each parameter? PDO::PARAM_STR works with any parameter as I know at least in MySQL. I think even with PDO::PARAM_STR can be used even with BLOB columns.

                  PDO::PARAM_STR 不会引入任何 SQL 注入,因为您仍然有准备好的查询.

                  PDO::PARAM_STR does not introduce any SQL injection because you still have prepared queries.

                  推荐答案

                  Using PARAM_STR 碰巧总是在列值中工作,因为 mySQL 隐式地将值转换为正确的类型,但它会失败,例如在这个查询中:

                  Using PARAM_STR happens to always work in column values because mySQL implicitly converts values to the correct type where it can, but it will fail for example in this query:

                  $limit = 1;
                  
                  $dbh->prepare("SELECT * FROM items LIMIT :limit");
                  $dbh->bindParam(":limit", $limit, PDO::PARAM_STR); 
                       // Will throw "You have an error in your SQL syntax..."
                  

                  绝对应该在适当的情况下使用 PARAM_INT - 对于上述情况,并为除 mySQL 之外的数据库引擎做准备,这些引擎可能对他们的期望更严格.

                  one should absolutely use PARAM_INT where appropriate - for cases like the one above, and to prepare for database engines other than mySQL that may be more strict in what they expect.

                  这篇关于在 PDO 中强类型参数的原因?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在 PHP 中,PDO 如何防止 SQL 注入?准备好的语句如 下一篇:将 mysql_fetch_array 转换为 PDO::FETCH_NUM

                  相关文章

                  最新文章

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

                  <tfoot id='ryqGu'></tfoot>

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