system system.base system.caching system.caching.dependencies system.collections system.console system.db system.db.ar system.db.schema system.db.schema.mssql system.db.schema.mysql system.db.schema.oci system.db.schema.pgsql system.db.schema.sqlite system.i18n system.i18n.gettext system.logging system.utils system.validators system.web system.web.actions system.web.auth system.web.filters system.web.helpers system.web.renderers system.web.services system.web.widgets system.web.widgets.captcha system.web.widgets.pagers

CDbCommand

system.db
继承 class CDbCommand » CComponent
可用自 1.0
版本 $Id$
CDbCommand represents an SQL statement to execute against a database.

It is usually created by calling CDbConnection::createCommand. The SQL statement to be executed may be set via Text.

To execute a non-query SQL (such as insert, delete, update), call execute. To execute an SQL statement that returns result data set (such as SELECT), use query or its convenient versions queryRow, queryColumn, or queryScalar.

If an SQL statement returns results (such as a SELECT SQL), the results can be accessed via the returned CDbDataReader.

CDbCommand supports SQL statment preparation and parameter binding. Call bindParam to bind a PHP variable to a parameter in SQL. Call bindValue to bind a value to an SQL parameter. When binding a parameter, the SQL statement is automatically prepared. You may also call prepare to explicitly prepare an SQL statement.

公共属性

隐藏继承的属性

属性类型描述被定义在
connection CDbConnection the connection associated with this command CDbCommand
pdoStatement PDOStatement the underlying PDOStatement for this command It could be null if the statement is not prepared yet. CDbCommand
text string the SQL statement to be executed CDbCommand

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. CComponent
__construct() Constructor. CDbCommand
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__sleep() Set the statement to null when serializing. CDbCommand
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
bindParam() Binds a parameter to the SQL statement to be executed. CDbCommand
bindValue() Binds a value to a parameter. CDbCommand
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
cancel() Cancels the execution of the SQL statement. CDbCommand
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
execute() Executes the SQL statement. CDbCommand
getConnection() CDbCommand
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
getPdoStatement() CDbCommand
getText() CDbCommand
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
prepare() Prepares the SQL statement to be executed. CDbCommand
query() Executes the SQL statement and returns query result. CDbCommand
queryAll() Executes the SQL statement and returns all rows. CDbCommand
queryColumn() Executes the SQL statement and returns the first column of the result. CDbCommand
queryRow() Executes the SQL statement and returns the first row of the result. CDbCommand
queryScalar() Executes the SQL statement and returns the value of the first column in the first row of data. CDbCommand
raiseEvent() Raises an event. CComponent
setText() Specifies the SQL statement to be executed. CDbCommand

属性详情

connection 属性 只读

the connection associated with this command

pdoStatement 属性 只读
public PDOStatement getPdoStatement()

the underlying PDOStatement for this command It could be null if the statement is not prepared yet.

text 属性
public string getText()
public void setText(string $value)

the SQL statement to be executed

方法详情

__construct() 方法
public void __construct(CDbConnection $connection, string $text)
$connection CDbConnection the database connection
$text string the SQL statement to be executed

Constructor.

__sleep() 方法
public void __sleep()

Set the statement to null when serializing.

bindParam() 方法
public CDbCommand bindParam(mixed $name, mixed $value, int $dataType=NULL, int $length=NULL)
$name mixed Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.
$value mixed Name of the PHP variable to bind to the SQL statement parameter
$dataType int SQL data type of the parameter. If null, the type is determined by the PHP type of the value.
$length int length of the data type
{return} CDbCommand the current command being executed (this is available since version 1.0.8)

Binds a parameter to the SQL statement to be executed.

bindValue() 方法
public CDbCommand bindValue(mixed $name, mixed $value, int $dataType=NULL)
$name mixed Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.
$value mixed The value to bind to the parameter
$dataType int SQL data type of the parameter. If null, the type is determined by the PHP type of the value.
{return} CDbCommand the current command being executed (this is available since version 1.0.8)

Binds a value to a parameter.

cancel() 方法
public void cancel()

Cancels the execution of the SQL statement.

execute() 方法
public integer execute(array $params=array ( ))
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} integer number of rows affected by the execution.

Executes the SQL statement. This method is meant only for executing non-query SQL statement. No result set will be returned.

getConnection() 方法
public CDbConnection getConnection()
{return} CDbConnection the connection associated with this command

getPdoStatement() 方法
public PDOStatement getPdoStatement()
{return} PDOStatement the underlying PDOStatement for this command It could be null if the statement is not prepared yet.

getText() 方法
public string getText()
{return} string the SQL statement to be executed

prepare() 方法
public void prepare()

Prepares the SQL statement to be executed. For complex SQL statement that is to be executed multiple times, this may improve performance. For SQL statement with binding parameters, this method is invoked automatically.

query() 方法
public CDbDataReader query(array $params=array ( ))
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} CDbDataReader the reader object for fetching the query result

Executes the SQL statement and returns query result. This method is for executing an SQL query that returns result set.

queryAll() 方法
public array queryAll(boolean $fetchAssociative=true, array $params=array ( ))
$fetchAssociative boolean whether each row should be returned as an associated array with column names as the keys or the array keys are column indexes (0-based).
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} array all rows of the query result. Each array element is an array representing a row. An empty array is returned if the query results in nothing.

Executes the SQL statement and returns all rows.

queryColumn() 方法
public array queryColumn(array $params=array ( ))
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} array the first column of the query result. Empty array if no result.

Executes the SQL statement and returns the first column of the result. This is a convenient method of query when only the first column of data is needed. Note, the column returned will contain the first element in each row of result.

queryRow() 方法
public array queryRow(boolean $fetchAssociative=true, array $params=array ( ))
$fetchAssociative boolean whether the row should be returned as an associated array with column names as the keys or the array keys are column indexes (0-based).
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} array the first row of the query result, false if no result.

Executes the SQL statement and returns the first row of the result. This is a convenient method of query when only the first row of data is needed.

queryScalar() 方法
public mixed queryScalar(array $params=array ( ))
$params array input parameters (name=>value) for the SQL execution. This is an alternative to bindParam and bindValue. If you have multiple input parameters, passing them in this way can improve the performance. Note that you pass parameters in this way, you cannot bind parameters or values using bindParam or bindValue, and vice versa. binding methods and the input parameters this way can improve the performance. This parameter has been available since version 1.0.10.
{return} mixed the value of the first column in the first row of the query result. False is returned if there is no value.

Executes the SQL statement and returns the value of the first column in the first row of data. This is a convenient method of query when only a single scalar value is needed (e.g. obtaining the count of the records).

setText() 方法
public void setText(string $value)
$value string the SQL statement to be executed

Specifies the SQL statement to be executed. Any previous execution will be terminated or cancel.