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

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

<tfoot id='BGyda'></tfoot>

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

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

      不能使用整數(shù)值多次執(zhí)行準備好的語句

      Prepared statement cannot be executed multiple times with integer values(不能使用整數(shù)值多次執(zhí)行準備好的語句)

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

        <tbody id='sEYbR'></tbody>

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

                本文介紹了不能使用整數(shù)值多次執(zhí)行準備好的語句的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                如何使用不同的整數(shù)值正確地重新執(zhí)行準備好的語句?

                How do I properly re-execute a prepared statement using different integer values?

                重用 ODBC 準備好的語句時,顯式和隱式綁定 PDO::PARAM_INT 存在致命錯誤.

                There's something deathly wrong with explicit and implicit binding PDO::PARAM_INT when reusing an ODBC prepared statement.

                CREATE TABLE mytab (
                    col INT,
                    something VARCHAR(20)
                );
                

                作品:多個字符串

                $pdoDB = new PDO('odbc:Driver=ODBC Driver 13 for SQL Server;
                  Server='.DATABASE_SERVER.';
                  Database='.DATABASE_NAME,
                  DATABASE_USERNAME,
                  DATABASE_PASSWORD
                );
                $pdoDB->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
                
                $values = ['here','are','some','values'];
                $sql = "INSERT INTO mytab (something) VALUES (:something)";
                $stmt = $pdoDB->prepare($sql);
                foreach ($values as $value)
                  $stmt->execute(['something'=>$value]);
                

                作品:單個整數(shù)

                $values = [42];
                $sql = "INSERT INTO mytab (col) VALUES (:col)";
                $stmt = $pdoDB->prepare($sql);
                foreach ($values as $value)
                  $stmt->execute(['col'=>$value]);
                

                不起作用:多個整數(shù)

                $values = [1,3,5,7,11];
                $sql = "INSERT INTO mytab (col) VALUES (:col)";
                $stmt = $pdoDB->prepare($sql);
                foreach ($values as $value)
                  $stmt->execute(['col'=>$value]);
                

                它實際上成功地插入了第一條記錄1,但是當它嘗試在下一次執(zhí)行時重用該語句時失敗了.

                It actually successfully inserts the first record 1 but fails when it tries to reuse the statement on the next execute.

                PHP 致命錯誤:未捕獲的 PDOException:SQLSTATE[22018]:轉(zhuǎn)換規(guī)范的字符值無效:206 [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]操作數(shù)類型沖突:文本與 int 不兼容(SQLExecute[206] 在/build/php7.0-lPMnpS/php7.0-7.0.8/ext/pdo_odbc/odbc_stmt.c:260)

                PHP Fatal error: Uncaught PDOException: SQLSTATE[22018]: Invalid character value for cast specification: 206 [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Operand type clash: text is incompatible with int (SQLExecute[206] at /build/php7.0-lPMnpS/php7.0-7.0.8/ext/pdo_odbc/odbc_stmt.c:260)

                我使用 適用于 SQL Server? 的 Microsoft? ODBC 驅(qū)動程序 13(預覽版)

                我已經(jīng)嘗試將整個事情包裝在 PDO::beginTransactionPDO::commit

                I have tried wrapping the whole thing in PDO::beginTransaction and PDO::commit

                我也試過使用 PDOStatement::bindParam 但它拋出完全相同的錯誤.

                I've also tried using PDOStatement::bindParam but it throws the exact same error.

                $values = [1];
                $sql = "INSERT INTO mytab (col) VALUES (:col)";
                $stmt = $pdoDB->prepare($sql);
                foreach ($values as $value){
                  $stmt->bindParam('col', $value, PDO::PARAM_INT);
                  $stmt->execute();
                }
                

                不起作用

                $values = [1,2];
                $sql = "INSERT INTO mytab (col) VALUES (:col)";
                $stmt = $pdoDB->prepare($sql);
                foreach ($values as $value){
                  $stmt->bindParam('col', $value, PDO::PARAM_INT);
                  $stmt->execute();
                }
                

                我認為有趣的是,我在使用 PHP 5.6.9 時遇到了與此未回答的問題完全相同的錯誤.但是,他們甚至無法執(zhí)行一個語句,所以我想知道是否有部分補丁考慮到拋出錯誤的確切行已從 odbc_stmt.c:254odbc_stmt.c:260

                I think it's interesting to note that I am getting the exact same error as this unanswered question using PHP 5.6.9. However, they are not able to execute even one statement, so I'm wondering if there's been a partial patch considering the exact line throwing the error has moved from odbc_stmt.c:254 to odbc_stmt.c:260

                如果我在循環(huán)中內(nèi)部準備語句,那么它工作得很好.但我讀到這是非常低效的,我應該能夠重用陳述.我特別擔心在大量數(shù)據(jù)集上使用它.這個可以嗎?有什么我可以做的更好的事情嗎?

                If I prepare the statement inside the loop, then it works just fine. But I've read that this is very inefficient and I should be able to reuse the statement. I'm particularly worried about using this with massive datasets. Is this OK? Is there something better that I can do?

                $values = [1,3,5,7,9,11];
                $sql = "INSERT INTO mytab (col) VALUES (:col)";
                foreach ($values as $value){
                  $stmt = $pdoDB->prepare($sql);
                  $stmt->execute(['col'=>$value]);
                }
                

                推薦答案

                在準備好的語句的情況下,您通常必須在循環(huán)外使用 bindParam.

                In case of prepared statements you have to use bindParam outside of loop, usually.

                1. bindParam 是單步
                2. 設置綁定變量是一個可重復的步驟(循環(huán))
                3. 你必須為每次重復運行execute

                我想,這樣的事情會奏效:

                I guess, something like that would work:

                $stmt = $pdoDB->prepare("INSERT INTO mytab (col, key) VALUES (:col, :key)");
                
                // bind params (by reference)
                $stmt->bindParams(":col", $col, PDO::PARAM_STR); //bind variable $col
                $stmt->bindParams(":key", $key, PDO::PARAM_INT); //bind variable $key
                
                $values = ['here','are','some','values'];
                foreach ($values as $i => $value) {
                    $col = $value; //set col
                    $key = $i; //set key
                    $stmt->execute();
                }
                

                這篇關(guān)于不能使用整數(shù)值多次執(zhí)行準備好的語句的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

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

                相關(guān)文檔推薦

                Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死鎖異常代碼?)
                PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滾動游標不起作用)
                PHP PDO ODBC connection(PHP PDO ODBC 連接)
                Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔術(shù)方法)
                php pdo get only one value from mysql; value that equals to variable(php pdo 只從 mysql 獲取一個值;等于變量的值)
                MSSQL PDO could not find driver(MSSQL PDO 找不到驅(qū)動程序)
                  <tbody id='XkHaT'></tbody>
                • <bdo id='XkHaT'></bdo><ul id='XkHaT'></ul>

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

                    <legend id='XkHaT'><style id='XkHaT'><dir id='XkHaT'><q id='XkHaT'></q></dir></style></legend>
                    <tfoot id='XkHaT'></tfoot>

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

                        • 主站蜘蛛池模板: 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | OLChemim试剂-ABsciex耗材-广州市自力色谱科仪有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 千斤顶,液压千斤顶-力良企业,专业的液压千斤顶制造商,shliliang.com | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 辐射色度计-字符亮度测试-反射式膜厚仪-苏州瑞格谱光电科技有限公司 | 超细|超微气流粉碎机|气流磨|气流分级机|粉体改性机|磨粉机|粉碎设备-山东埃尔派粉体科技 | 元拓建材集团官方网站 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 影视模板素材_原创专业影视实拍视频素材-8k像素素材网 | 亿诺千企网-企业核心产品贸易| 大行程影像测量仪-探针型影像测量仪-增强型影像测量仪|首丰百科 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司| 卸料器-卸灰阀-卸料阀-瑞安市天蓝环保设备有限公司 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 圆周直径尺-小孔内视镜-纤维研磨刷-东莞市高腾达精密工具 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 宿舍管理系统_智慧园区系统_房屋/房产管理系统_公寓管理系统 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 |