<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 基本用法 ### 介紹 連接到數據庫并運行查詢是一個簡單的過程,可以通過使用原始SQL,[查詢構建器](https://octobercms.com/docs/database/query)或[活動記錄模型來支持](https://octobercms.com/docs/database/model)。管理數據庫表和填充種子數據由[遷移和種子程序處理](https://octobercms.com/docs/database/structure)。 原始SQL和使用查詢生成器的執行速度更快,應用于簡單任務。Active Record是流行的框架Ruby On Rails使用的一種方法。它提供了一個簡單的界面來執行重復的任務,例如創建,讀取,更新和刪除數據庫記錄。您可以[在Wikipedia上](http://en.wikipedia.org/wiki/Active_record_pattern)了解有關[活動記錄模式的](http://en.wikipedia.org/wiki/Active_record_pattern)更多信息。 ### [](https://octobercms.com/docs/database/basics#configuration)組態 您的應用程序的數據庫配置位于該`config/database.php`文件中。在此文件中,您可以定義所有數據庫連接,并指定默認情況下應使用哪個連接。此文件中提供了所有受支持的數據庫系統的示例。 ### [](https://octobercms.com/docs/database/basics#read-write-connections)讀/寫連接 有時,您可能希望對SELECT語句使用一個數據庫連接,而對INSERT,UPDATE和DELETE語句使用另一個數據庫連接。無論使用原始查詢,查詢生成器還是模型,都可以輕松指定使用哪個連接。 要查看應如何配置讀/寫連接,讓我們看下面的示例: ~~~ 'mysql' => [ 'read' => [ 'host' => '192.168.1.1', ], 'write' => [ 'host' => '196.168.1.2' ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], ~~~ 請注意,兩個鍵已添加到配置數組:`read`和`write`。這兩個鍵的數組值都包含一個鍵:`host`。`read`和`write`連接的其余數據庫選項將從主`mysql`陣列合并。 如果我們希望覆蓋主數組中的值,則只需要在`read`和`write`數組中放置項目即可。因此,在這種情況下,`192.168.1.1`將用作“讀取”連接,而`192.168.1.2`將用作“寫入”連接。主`mysql`陣列中的數據庫憑據,前綴,字符集和所有其他選項將在兩個連接之間共享。 ### [](https://octobercms.com/docs/database/basics#running-queries)運行原始SQL查詢 一旦配置了數據庫連接,就可以使用`Db`Facade運行查詢。的`Db`立面提供了每種類型的查詢方法:`select`,`update`,`insert`,`delete`,和`statement`。 #### 運行選擇查詢 要運行基本查詢,我們可以`select`在`Db`外觀上使用方法: ~~~ $users = Db::select('select * from users where active = ?', [1]); ~~~ 傳遞給該`select`方法的第一個參數是原始SQL查詢,而第二個參數是需要綁定到查詢的任何參數綁定。通常,這些是`where`子句約束的值。參數綁定可防止SQL注入。 該`select`方法將始終返回`array`結果。數組中的每個結果將是一個PHP`stdClass`對象,使您可以訪問結果的值: ~~~ foreach ($users as $user) { echo $user->name; } ~~~ #### 使用命名綁定 `?`您可以使用命名綁定執行查詢,而不是用來表示參數綁定: ~~~ $results = Db::select('select * from users where id = :id', ['id' => 1]); ~~~ #### 運行插入語句 要執行`insert`語句,可以`insert`在`Db`外觀上使用方法。像一樣`select`,此方法將原始SQL查詢作為其第一個參數,并將綁定作為第二個參數: ~~~ Db::insert('insert into users (id, name) values (?, ?)', [1, 'Joe']); ~~~ #### 運行更新語句 該`update`方法應用于更新數據庫中的現有記錄。受該語句影響的行數將由方法返回: ~~~ $affected = Db::update('update users set votes = 100 where name = ?', ['John']); ~~~ #### 運行刪除語句 該`delete`方法應用于從數據庫中刪除記錄。與一樣`update`,將返回刪除的行數: ~~~ $deleted = Db::delete('delete from users'); ~~~ #### 運行一般性聲明 某些數據庫語句不應返回任何值。對于這些類型的操作,您可以`statement`在`Db`外觀上使用方法: ~~~ Db::statement('drop table users'); ~~~ ### [](https://octobercms.com/docs/database/basics#accessing-connections)多個數據庫連接 使用多個連接時,可以通過立面上的`connection`方法訪問每個連接`Db`。在`name`傳遞給`connection`方法應該對應于您列出的其中一個連接`config/database.php`配置文件: ~~~ $users = Db::connection('foo')->select(...); ~~~ 您還可以使用`getPdo`連接實例上的方法訪問原始的基礎PDO實例: ~~~ $pdo = Db::connection()->getPdo(); ~~~ ### [](https://octobercms.com/docs/database/basics#database-transactions)數據庫交易 要在數據庫事務中運行一組操作,可以`transaction`在`Db`外觀上使用該方法。如果在事務內引發異常`Closure`,則事務將自動回滾。如果`Closure`執行成功,事務將自動提交。您無需擔心使用該`transaction`方法時手動回滾或提交: ~~~ Db::transaction(function () { Db::table('users')->update(['votes' => 1]); Db::table('posts')->delete(); }); ~~~ #### 手動使用交易 如果您想手動開始事務并完全控制回滾和提交,則可以`beginTransaction`在`Db`外觀上使用該方法: ~~~ Db::beginTransaction(); ~~~ 您可以通過以下`rollBack`方法回滾事務: ~~~ Db::rollBack(); ~~~ 最后,您可以通過以下`commit`方法提交交易: ~~~ Db::commit(); ~~~ > **注意:**使用`Db`Facade的事務方法還可以控制[查詢構建器](https://octobercms.com/docs/database/query)和[模型查詢的](https://octobercms.com/docs/database/model)事務。 ### [](https://octobercms.com/docs/database/basics#database-events)數據庫事件 如果您希望接收應用程序執行的每個SQL查詢,則可以使用該`listen`方法。此方法對于記錄查詢或調試很有用。 ~~~ Db::listen(function($sql, $bindings, $time) { // }); ~~~ 就像[事件注冊一樣](https://octobercms.com/docs/services/events#event-registration),您可以`boot`使用[插件注冊文件](https://octobercms.com/docs/plugin/registration#registration-methods)的方法注冊查詢偵聽器。另外,插件可以在插件目錄中提供一個名為**init.php**的文件,您可以使用該文件放置此邏輯。 ### [](https://octobercms.com/docs/database/basics#query-logging)查詢記錄 啟用查詢日志記錄后,日志將保留在針對當前請求運行的所有查詢的內存中。調用該`enableQueryLog`方法以啟用此功能。 ~~~ Db::connection()->enableQueryLog(); ~~~ 要獲取已執行查詢的數組,可以使用以下`getQueryLog`方法: ~~~ $queries = Db::getQueryLog(); ~~~ 但是,在某些情況下,例如在插入大量行時,這可能導致應用程序使用過多的內存。要禁用日志,可以使用以下`disableQueryLog`方法: ~~~ Db::connection()->disableQueryLog(); ~~~ > **注意**:為了更快地進行調試,相反,調用`trace_sql`[helper函數](https://octobercms.com/docs/services/error-log#helpers)可能更有用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看