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

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

  1. <legend id='XCqvU'><style id='XCqvU'><dir id='XCqvU'><q id='XCqvU'></q></dir></style></legend>
  2. <tfoot id='XCqvU'></tfoot>
      <bdo id='XCqvU'></bdo><ul id='XCqvU'></ul>

    1. <small id='XCqvU'></small><noframes id='XCqvU'>

      使用 DEFAULT 值準備 MySQL INSERT/UPDATE 語句

      Preparing a MySQL INSERT/UPDATE statement with DEFAULT values(使用 DEFAULT 值準備 MySQL INSERT/UPDATE 語句)
        • <bdo id='0JHZn'></bdo><ul id='0JHZn'></ul>
          <i id='0JHZn'><tr id='0JHZn'><dt id='0JHZn'><q id='0JHZn'><span id='0JHZn'><b id='0JHZn'><form id='0JHZn'><ins id='0JHZn'></ins><ul id='0JHZn'></ul><sub id='0JHZn'></sub></form><legend id='0JHZn'></legend><bdo id='0JHZn'><pre id='0JHZn'><center id='0JHZn'></center></pre></bdo></b><th id='0JHZn'></th></span></q></dt></tr></i><div class="ariswtk" id='0JHZn'><tfoot id='0JHZn'></tfoot><dl id='0JHZn'><fieldset id='0JHZn'></fieldset></dl></div>

        • <tfoot id='0JHZn'></tfoot><legend id='0JHZn'><style id='0JHZn'><dir id='0JHZn'><q id='0JHZn'></q></dir></style></legend>
              <tbody id='0JHZn'></tbody>

                <small id='0JHZn'></small><noframes id='0JHZn'>

              • 本文介紹了使用 DEFAULT 值準備 MySQL INSERT/UPDATE 語句的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                引用 MySQL INSERT 手冊 - 更新也一樣:

                Quoting MySQL INSERT manual - same goes for UPDATE:

                使用關鍵字 DEFAULT 將列顯式設置為其默認值.這使得編寫將值分配給除少數列之外的所有列的 INSERT 語句變得更容易,因為它使您能夠避免編寫不包括表中每一列的值的不完整 VALUES 列表.否則,您必須寫出與 VALUES 列表中的每個值對應的列名列表.

                Use the keyword DEFAULT to set a column explicitly to its default value. This makes it easier to write INSERT statements that assign values to all but a few columns, because it enables you to avoid writing an incomplete VALUES list that does not include a value for each column in the table. Otherwise, you would have to write out the list of column names corresponding to each value in the VALUES list.

                簡而言之,如果我寫

                INSERT INTO table1 (column1,column2) values ('value1',DEFAULT);
                

                插入一個將 column2 設置為其默認值的新行 - 無論它是什么 - .

                A new row with column2 set as its default value - whatever it may be - is inserted.

                但是,如果我在 PHP 中準備并執行語句:

                However if I prepare and execute a statement in PHP:

                $statement = $pdoObject->
                    prepare("INSERT INTO table1 (column1,column2) values (?,?)");
                $statement->execute(array('value1','DEFAULT'));
                

                新行將包含DEFAULT"作為其文本值 - 如果該列能夠存儲文本值.

                The new row will contain 'DEFAULT' as its text value - if the column is able to store text values.

                現在我已經為 PDO 編寫了一個抽象層(我需要它),為了解決這個問題,我正在考慮引入一個

                Now I have written an abstraction layer to PDO (I needed it) and to get around this issue am considering to introduce a

                const DEFAULT_VALUE = "randomstring";
                

                所以我可以執行這樣的語句:

                So I could execute statements like this:

                $statement->execute(array('value1',mysql::DEFAULT_VALUE));
                

                然后在進行綁定的方法中,我將檢查發送給綁定的值,如果某些值等于 self::DEFAULT_VALUE,則采取相應的行動.

                And then in method that does the binding I'd go through values that are sent to be bound and if some are equal to self::DEFAULT_VALUE, act accordingly.

                我很確定有更好的方法來做到這一點.有沒有其他人遇到過類似的情況?

                I'm pretty sure there's a better way to do this. Has someone else encountered similar situations?

                推薦答案

                我知道的唯一解決方法"是使用 Coalesce() 和 默認(字段名)

                The only "workaround" I know for this is to use Coalesce() and Default(fieldname)

                例如

                $pdo = new PDO("mysql:host=localhost;dbname=test", 'localonly', 'localonly'); 
                $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                
                $pdo->exec("
                  CREATE TEMPORARY TABLE foo (
                    id int auto_increment,
                    x int NOT NULL DEFAULT 99,
                    y DATETIME NOT NULL DEFAULT '2010-03-17 01:00:00',
                    z varchar(64) NOT NULL DEFAULT 'abc',
                    primary key(id)
                  )
                ");
                
                
                $stmt = $pdo->prepare('
                  INSERT INTO
                    foo
                    (x,y,z)
                  VALUES
                    (
                      Coalesce(:x, Default(x)),
                      Coalesce(:y, Default(y)),
                      Coalesce(:z, Default(z))
                    )
                ');
                $stmt->bindParam(':x', $x);
                $stmt->bindParam(':y', $y);
                $stmt->bindParam(':z', $z);
                
                
                $testdata = array(
                  array(null, null, null),
                  array(1, null, 'lalala'),
                  array(null, '2009-12-24 18:00:00', null)
                );
                foreach($testdata as $row) {
                  list($x,$y,$z) = $row;
                  $stmt->execute();
                }
                unset($stmt);
                foreach( $pdo->query('SELECT id,x,y,z FROM foo', PDO::FETCH_NUM) as $row) {
                  echo join(', ', $row), "
                ";
                }
                

                印刷品

                1, 99, 2010-03-17 01:00:00, abc
                2, 1, 2010-03-17 01:00:00, lalala
                3, 99, 2009-12-24 18:00:00, abc
                

                這篇關于使用 DEFAULT 值準備 MySQL INSERT/UPDATE 語句的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持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的訪問被拒絕)
                  • <bdo id='yPKZL'></bdo><ul id='yPKZL'></ul>
                    <legend id='yPKZL'><style id='yPKZL'><dir id='yPKZL'><q id='yPKZL'></q></dir></style></legend>

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

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

                        • 主站蜘蛛池模板: 圣才学习网-考研考证学习平台,提供万种考研考证电子书、题库、视频课程等考试资料 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 电主轴,车床电磨头,变频制动电机-博山鸿达特种电机 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | 安徽泰科检测科技有限公司【官方网站】 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 南京展台搭建-南京展会设计-南京展览设计公司-南京展厅展示设计-南京汇雅展览工程有限公司 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 国际学校_国际学校哪个好_国际课程学校-国际学校择校网 | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 精密模具加工制造 - 富东懿| 合肥网带炉_安徽箱式炉_钟罩炉-合肥品炙装备科技有限公司 | 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 博医通医疗器械互联网供应链服务平台_博医通 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 分光色差仪,测色仪,反透射灯箱,爱色丽分光光度仪,美能达色差仪维修_苏州欣美和仪器有限公司 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 科普仪器菏泽市教育教学仪器总厂| 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 注塑_注塑加工_注塑模具_塑胶模具_注塑加工厂家_深圳环科 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 |