CDbCommand
包 | system.db |
---|---|
继承 | class CDbCommand » CComponent |
可用自 | 1.0 |
版本 | $Id$ |
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 |
属性详情
the connection associated with this command
the underlying PDOStatement for this command It could be null if the statement is not prepared yet.
the SQL statement to be executed
方法详情
public void __construct(CDbConnection $connection, string $text)
| ||
$connection | CDbConnection | the database connection |
$text | string | the SQL statement to be executed |
Constructor.
public void __sleep()
|
Set the statement to null when serializing.
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.
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.
public void cancel()
|
Cancels the execution of the SQL statement.
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.
public CDbConnection getConnection()
| ||
{return} | CDbConnection | the connection associated with this command |
public PDOStatement getPdoStatement()
| ||
{return} | PDOStatement | the underlying PDOStatement for this command It could be null if the statement is not prepared yet. |
public string getText()
| ||
{return} | string | the SQL statement to be executed |
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.
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.
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.
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.
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.
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).
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.