久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<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="qwawimqqmiuu" 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="qwawimqqmiuu" 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="qwawimqqmiuu" id='yPKZL'><tfoot id='yPKZL'></tfoot><dl id='yPKZL'><fieldset id='yPKZL'></fieldset></dl></div>
                    <tfoot id='yPKZL'></tfoot>
                      <tbody id='yPKZL'></tbody>

                        • 主站蜘蛛池模板: 在线欧美亚洲 | 国产一区日韩在线 | 九九热在线免费视频 | 五月综合激情在线 | 久久草视频| 国产精品成人一区二区三区 | 午夜视频大全 | 天天综合久久 | 一级毛片黄片 | 麻豆一区一区三区四区 | 亚洲一区中文字幕在线观看 | 激情 一区 | 欧美久久一级 | 久久亚洲经典 | 艹逼网| 综合久久综合久久 | 日韩在线一区二区三区 | 在线免费观看成人 | 玖玖视频 | 中文字幕国产视频 | 欧美一区二区在线 | 久久精品成人热国产成 | 都市激情亚洲 | 亚洲巨乳自拍在线视频 | 国产成人久久精品一区二区三区 | 人碰人操 | 在线色| m豆传媒在线链接观看 | 国产精品毛片一区二区三区 | 成人高潮片免费视频欧美 | 国产视频福利一区 | 日韩精品成人免费观看视频 | a网站在线观看 | 日韩精品一区二区三区在线播放 | 日韩a在线 | 综合婷婷| 一区二区三区在线播放视频 | 免费国产一区二区视频 | 国产 欧美 日韩 一区 | 日韩在线视频一区二区三区 | 免费在线观看成人 |