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

        <tfoot id='ykJlJ'></tfoot>

        • <bdo id='ykJlJ'></bdo><ul id='ykJlJ'></ul>

        PDO::PARAM_INT 在 bindParam 中很重要吗?

        时间:2023-10-05
        <tfoot id='jyc4o'></tfoot>

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

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

              1. <legend id='jyc4o'><style id='jyc4o'><dir id='jyc4o'><q id='jyc4o'></q></dir></style></legend>

                  <tbody id='jyc4o'></tbody>
                • <bdo id='jyc4o'></bdo><ul id='jyc4o'></ul>

                  本文介绍了PDO::PARAM_INT 在 bindParam 中很重要吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  在Mysql查询中添加PDO::PARAM_INTPDO::PARAM_STR有什么意义吗?

                  Add PDO::PARAM_INT or PDO::PARAM_STR have any meaning in Mysql query?

                  $sql  = 'SELECT TagId FROM tagthread WHERE ThreadId = :ThreadId';
                  
                  $stmt = $this->db->prepare($sql);
                  $stmt->bindParam(':ThreadId', $threadid, PDO::PARAM_INT);
                  
                  $stmt->execute();
                  

                  推荐答案

                  是的,使用它.

                  我做了一些测试(使用 PDO::ATTR_EMULATE_PREPARES false),我发现值周围的引号会有所不同.

                  I did a few tests (with PDO::ATTR_EMULATE_PREPARES false) and I found out that the quotes around the values will be different.

                  当您使用 PARAM_INT 绑定整数值时,查询中将没有引号(带有 PARAM_INT 的字符串值有引号).如果您使用 PDO::PARAM_STR 绑定一个整数值,将会有引号,并且 mysql 必须转换为整数.

                  When you bind an integer value with PARAM_INT there will be no quotes in the query (A string value with PARAM_INT has quotes). If you bind an integer value with PDO::PARAM_STR there will be quotes and mysql has to cast to integer.

                  示例:

                  $stmt->bindParam(':ThreadId', $threadid, PDO::PARAM_INT);
                  $threadid = 123;
                  // SELECT TagId FROM tagthread WHERE ThreadId = 123
                  $threadid = '123test';
                  // SELECT TagId FROM tagthread WHERE ThreadId = '123test'
                  // mysql will cast 123test to 123
                  

                  我进一步测试并阅读了该主题.结论:隐式转换是危险的,可能会导致意想不到的结果.阅读更多关于 这里.总是使用 PDO::PARAM_STR 的另一个缺点是性能.阅读有关性能的更多信息 在 Mysql 查询中引用整数的缺点?

                  I further tested and read on that topic. Conclusion: Implicit casting is dangerous and can lead to unexpected results. Read more on that here. Another disadvantage to always use PDO::PARAM_STR is the performance. Read more on performance Disadvantages of quoting integers in a Mysql query?

                  因此,如果您的列属于 [TINY|SMALL|MEDIUM|BIG]INT 类型,请使用 PARAM_INT.如果它是一个 LIMIT 子句,那么如果 PHP 中的变量类型不是整数,则它会转换为整数.

                  So if your column is of type [TINY|SMALL|MEDIUM|BIG]INT than use PARAM_INT. And in case it is a LIMIT clause than cast to integer if the variable type in PHP is not integer.

                  这篇关于PDO::PARAM_INT 在 bindParam 中很重要吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:在 Laravel 4 中转义原始 SQL 查询 下一篇:在 PHP 中,PDO 如何防止 SQL 注入?准备好的语句如

                  相关文章

                  最新文章

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