Yii 11.17 database related operation instructions
The content of this article is about Yii 11.17 database related operation instructions, which has certain reference value. Now I share it with you. Friends in need can refer to it
Example:
$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. To establish a database connection, you can use try...catch to catch exceptions that may be thrown
#$connection=new CDbConnection($dsn,$username,$password);
# DSN format
# SQLite: sqlite:/path/to/dbfile
# MySQL: mysql:host=localhost;dbname=testdb
# PostgreSQL: pgsql:host=localhost;port=5432;dbname=testdb
# SQL Server: mssql:host=localhost;dbname=testdb
# Oracle: oci:dbname=//localhost:1521/testdb
#Modify the alias in the configuration file
array( 'components'=>array( 'db'=>array( 'class'=>'CDbConnection', 'connectionString'=>'mysql:host=localhost;dbname=testdb', 'username'=>'root', 'password'=>'password', 'emulatePrepare'=>true, // needed by some MySQL installations ), ), )
# Then use this method to establish a connection, and we can access the database connection through
$connection = Yii::app()->db
#. It is automatically activated unless we specifically configure
# CDbConnection::autoConnect to false.
# In this way, this single DB connection can be shared in many places in our code.
# If not, you may need to explicitly establish a connection:
# $connection=new CDbConnection($dsn,$username,$password);
$connection->active=true; # 建立链接之后active为true;
$connection->active=false; # 关闭连接
#Run SQL
$command=$connection->createCommand($sql);
#SQL modification
$command->text = $newSQL;
execute() method is used to execute INSERT, UPDATE and DELETE.
If successful, it will return the number of rows affected by this execution.
#query() method executes a SQL statement that returns several rows of data, such as SELECT. #If successful, it returns a CDbDataReader instance through which the resulting rows of data can be traversed. #For the sake of simplicity, (Yii) also implements a series of queryXXX() methods to directly return query results
#If an error occurs in SQL, an exception will be thrown. .
$rowCount = $command->execute(); # 执行无查询 SQL $dataReader = $command->query(); # 执行一个 SQL 查询 $rows = $command->queryAll(); # 查询并返回结果中的所有行 $row = $command->queryRow(); # 查询并返回结果中的第一行 $column = $command->queryColumn(); # 查询并返回结果中的第一列 $value = $command->queryScalar(); # 查询并返回结果中第一行的第一个字段
Get query results
#After generating CDbDataReader
#Repeatedly call CDbDataReader::read()
#For example
#
$dataReader = $command->query();
#Method 1 Repeatedly call read() until it returns false
while
( ($row = $dataReader->read()) !== false) { ... }
foreach
#Method 3 Extract all rows into an array at once$rows = $dataReader->readAll();#Note:
#All queryXXX() methods will return data directly
#query() will not, but will return an instance of CDbDataReader
#Use transactions
$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 parameter can be a string (such as 'id=1') or an array.
If it is the latter, it must be in the format array(operator, operand1, operand2, ...), the operator can be one of the following, and the possible operands depend on the corresponding operator:
and: The operands should be connected using AND.
For example:
array('and', 'id=1', 'id=2')
will generate
'id=1 AND id=2'. If an operand is an array, it is converted to a string using the same rules described here. For example:
array('and', 'type=1', array('or', 'id=1', 'id=2'))
will generate
'type=1 AND ( id=1 OR id=2)'
This method will not do any quoting or escaping.
or: Similar to the and operator, except that the operands are connected using OR.
in: Operand 1 should be a column or DB expression, operand 2 should be an array, indicating the range in which the value of the corresponding column or DB expression should be.
For example:
array('in', 'id', array(1,2,3))
will generate 'id IN (1,2,3)'
This method will be correct The quoted column name and the escaped value in the range.
not in: Similar to in, except IN is replaced with NOT IN when generating conditions.
like: Operand 1 should be a column or a DB expression, operand 2 is a string or an array indicating the value of the column or DB expression that should be like.
For example:
array('like', 'name', '%tester%')
will generate
"name LIKE '%tester%'"
When the value range is given As an array, multiple LIKE predicates will be generated and connected using AND.
For example:
array('like', 'name', array('%test%', '%sample%'))
will generate
"name LIKE '%test%' AND name LIKE '%sample%'"
This method will correctly quote escaped values in column names and ranges.
not like: Similar to like, except that NOT LIKE is used instead of LIKE when generating conditions.
or like: Similar to like, except OR is used to connect LIKE predicates.
or not like: Similar to not like, except OR is used to connect NOT LIKE predicates.
Related recommendations:
Yii multi-application multi-module
Yii2 configuration basic concepts
The above is the detailed content of Yii 11.17 database related operation instructions. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Go language is an efficient, concise and easy-to-learn programming language. It is favored by developers because of its advantages in concurrent programming and network programming. In actual development, database operations are an indispensable part. This article will introduce how to use Go language to implement database addition, deletion, modification and query operations. In Go language, we usually use third-party libraries to operate databases, such as commonly used sql packages, gorm, etc. Here we take the sql package as an example to introduce how to implement the addition, deletion, modification and query operations of the database. Assume we are using a MySQL database.

Apple's latest releases of iOS18, iPadOS18 and macOS Sequoia systems have added an important feature to the Photos application, designed to help users easily recover photos and videos lost or damaged due to various reasons. The new feature introduces an album called "Recovered" in the Tools section of the Photos app that will automatically appear when a user has pictures or videos on their device that are not part of their photo library. The emergence of the "Recovered" album provides a solution for photos and videos lost due to database corruption, the camera application not saving to the photo library correctly, or a third-party application managing the photo library. Users only need a few simple steps

Hibernate polymorphic mapping can map inherited classes to the database and provides the following mapping types: joined-subclass: Create a separate table for the subclass, including all columns of the parent class. table-per-class: Create a separate table for subclasses, containing only subclass-specific columns. union-subclass: similar to joined-subclass, but the parent class table unions all subclass columns.

How to use MySQLi to establish a database connection in PHP: Include MySQLi extension (require_once) Create connection function (functionconnect_to_db) Call connection function ($conn=connect_to_db()) Execute query ($result=$conn->query()) Close connection ( $conn->close())

To handle database connection errors in PHP, you can use the following steps: Use mysqli_connect_errno() to obtain the error code. Use mysqli_connect_error() to get the error message. By capturing and logging these error messages, database connection issues can be easily identified and resolved, ensuring the smooth running of your application.

HTML cannot read the database directly, but it can be achieved through JavaScript and AJAX. The steps include establishing a database connection, sending a query, processing the response, and updating the page. This article provides a practical example of using JavaScript, AJAX and PHP to read data from a MySQL database, showing how to dynamically display query results in an HTML page. This example uses XMLHttpRequest to establish a database connection, send a query and process the response, thereby filling data into page elements and realizing the function of HTML reading the database.

Using the database callback function in Golang can achieve: executing custom code after the specified database operation is completed. Add custom behavior through separate functions without writing additional code. Callback functions are available for insert, update, delete, and query operations. You must use the sql.Exec, sql.QueryRow, or sql.Query function to use the callback function.

Through the Go standard library database/sql package, you can connect to remote databases such as MySQL, PostgreSQL or SQLite: create a connection string containing database connection information. Use the sql.Open() function to open a database connection. Perform database operations such as SQL queries and insert operations. Use defer to close the database connection to release resources.
