Yii 11.17 資料庫相關操作說明
這篇文章介紹的內容是關於Yii 11.17 資料庫相關操作說明,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
範例:
$result = array( 'id'=>null, 'val'=>0 ); $row1 = Yii::app()->db->createCommand()->insert('test1', $result); $id = Yii::app()->db->getLastInsertID(); $row2 = Yii::app()->db->createCommand()->update('test1', array('val'=>$id) , 'id=:id',array(':id'=>$id)); echo $id; exit;
#1. 建立資料庫連線可以使用 try...catch 擷取可能拋出的例外
##$connection=new CDbConnection($dsn,$username,$password);
# DSN格式
# SQLite: sqlite:/path/to/dbfile
# MySQL: mysql:host=localhost;dbname=testdb
# PostgreSQL: pgsql:host=localhost;port=5432;dbname=testdb
##4 # SQL Server: mssql:host=localhost;dbname=testdb
# Oracle: oci:dbname=//localhost:1521/testdb
array( 'components'=>array( 'db'=>array( 'class'=>'CDbConnection', 'connectionString'=>'mysql:host=localhost;dbname=testdb', 'username'=>'root', 'password'=>'password', 'emulatePrepare'=>true, // needed by some MySQL installations ), ), )
# 然後使用這種方式來建立連接,我們就可以透過
$connection = Yii::app()->db
# 存取資料庫連接了。它已經被自動啟動了,除非我們特意配置了
# CDbConnection::autoConnect 為 false。
# 透過這種方式,這個單獨的DB連接就可以在我們程式碼中的許多地方共享。
# 如果沒有,你可能需要明確建立一個連線:
# $connection=new CDbConnection($dsn,$username,$password);
$connection->active=true; # 建立链接之后active为true;
$connection->active=false; # 关闭连接
##執行SQL
$command=$connection->createCommand($sql);
#SQL修改
$command->text = $newSQL;
#execute()方法用來執行INSERT, UPDATE 和DELETE 。
如果成功,它將傳回此執行所影響的行數。
#query() 方法執行一條會傳回若干行資料的 SQL 語句,例如 SELECT。
#如果成功,它將傳回一個CDbDataReader 實例,透過此實例可以遍歷資料的結果行。
#為簡單起見,(Yii)也實作了一系列 queryXXX() 方法以直接傳回查詢結果
#如果SQL發生錯誤,將會拋出一個例外。 .
$rowCount = $command->execute(); # 执行无查询 SQL $dataReader = $command->query(); # 执行一个 SQL 查询 $rows = $command->queryAll(); # 查询并返回结果中的所有行 $row = $command->queryRow(); # 查询并返回结果中的第一行 $column = $command->queryColumn(); # 查询并返回结果中的第一列 $value = $command->queryScalar(); # 查询并返回结果中第一行的第一个字段
##取得查詢結果
#在產生CDbDataReader後
#也可以在foreach 語言結構中使用CDbDataReader
#
$dataReader = $command->query();
#方法1 重複呼叫read() 直到它傳回false
#while
( ($row = $dataReader->read()) !== false) { ... }
##方法2 使用foreach 遍歷資料中的每一行
foreach
# ($dataReader as $row) { ... }
$transaction= $connection->beginTransaction(); try { $connection->createCommand($sql1)->execute(); $connection->createCommand($sql2)->execute(); #其他 $transaction->commit(); } catch(Exception $e) # 如果有一条查询失败,则会抛出异常 { $transaction->rollBack(); #回滚 }
$sql="INSERT INTO tbl_user (username, email) VALUES(:username,:email)"; $command = $connection->createCommand($sql);
$command->bindParam(":username", $username, PDO::PARAM_STR);
$command->bindParam(":email",$email,PDO::PARAM_STR); $command->execute();
$command->bindParam(":username",$username2,PDO::PARAM_STR); $command->bindParam(":email",$email2,PDO::PARAM_STR); $command->execute();
$sql="SELECT username, email FROM tbl_user"; $dataReader=$connection->createCommand($sql)->query();
$dataReader->bindColumn(1,$username);
$dataReader->bindColumn(2,$email);
array( 'components'=>array( 'db'=>array( 'class'=>'CDbConnection', 'connectionString'=>'mysql:host=localhost;dbname=testdb', 'username'=>'root', 'password'=>'password', 'emulatePrepare'=>true, // needed by some MySQL installations 'tablePrefix'=>"表前缀_" ), ), )
$sql='SELECT * FROM {{user}}'; $users=$connection->createCommand($sql)->queryAll();
$user = Yii::app()->db->createCommand() ->select('username, password') ->from('tbl_user') ->where('id=:id', array(':id'=>1)) ->queryRow();
$conditions 參數可以是一個字串(例如 'id=1')或一個陣列。
如果是後者,它必須是這種格式array(operator, operand1, operand2, ...), 運算符可以是下面當中的一個,可能的運算元依賴對應的運算子:
and: 運算元應該使用AND連接起來。
例如:
array('and', 'id=1', 'id=2')
將產生
'id=1 AND id=2'。如果一個操作數是一個數組, 它將被使用這裡描述的相同規則轉換成一個字串。例如:
array('and', 'type=1', array('or', 'id=1', 'id=2'))
將產生
'type=1 AND ( id=1 OR id=2)'
該方法將不做任何引用或轉義。
or: 和 and 運算子相似,除了操作數是使用OR連接起來。
in: 操作數1應該是一列或DB表達式,操作數2應該是數組, 表示對應的列的值或DB表達式應該在的範圍。
例如:
array('in', 'id', array(1,2,3))
將產生'id IN (1,2,3)'
這個方法將正確的引用列名和範圍中的轉義值。
not in: 和 in 相似,除了在產生條件時把IN替換成NOT IN。
like: 運算元1應該是一列或一個DB表達式,操作數2是一個字串或一個陣列 表示列或DB表達式應該like的值。
例如:
array('like', 'name', '%tester%')
將產生
"name LIKE '%tester%'"
當值範圍被給定為一個數組,多個LIKE謂語將被生成並使用AND連接起來。
例如:
array('like', 'name', array('%test%', '%sample%'))
將產生
"name LIKE '%test%' AND name LIKE '%sample%'"
這個方法將正確的引用列名和範圍中的轉義值。
not like: 和 like相似,除了在產生條件時使用NOT LIKE取代LIKE。
or like: 和 like相似,除了OR被用來把LIKE謂語連接起來。
or not like: 和 not like相似,除了OR被用作把NOT LIKE謂語連接起來。
相關推薦:
############################### #Yii2配置基本概念######以上是Yii 11.17 資料庫相關操作說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言是一種高效、簡潔且易於學習的程式語言,因其在並發程式設計和網路程式設計方面的優勢而備受開發者青睞。在實際開發中,資料庫操作是不可或缺的一部分,本文將介紹如何使用Go語言實作資料庫的增刪改查操作。在Go語言中,我們通常會使用第三方函式庫來操作資料庫,例如常用的sql套件、gorm等。這裡以sql包為例介紹如何實作資料庫的增刪改查操作。假設我們使用的是MySQL資料庫。

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。
