CSqliteCommandBuilder
包 | system.db.schema.sqlite |
---|---|
继承 | class CSqliteCommandBuilder » CDbCommandBuilder » CComponent |
可用自 | 1.0 |
源码 | framework/db/schema/sqlite/CSqliteCommandBuilder.php |
CSqliteCommandBuilder provides basic methods to create query commands for SQLite tables.
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
dbConnection | CDbConnection | database connection. | CDbCommandBuilder |
schema | CDbSchema | the schema for this command builder. | CDbCommandBuilder |
受保护的属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
integerPrimaryKeyDefaultValue | string | Returns default value of the integer/serial primary key. Default value means that the next | CDbCommandBuilder |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__construct() | CDbCommandBuilder | |
__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 |
__unset() | Sets a component property to be null. | CComponent |
applyCondition() | Alters the SQL to apply WHERE clause. | CDbCommandBuilder |
applyGroup() | Alters the SQL to apply GROUP BY. | CDbCommandBuilder |
applyHaving() | Alters the SQL to apply HAVING. | CDbCommandBuilder |
applyJoin() | Alters the SQL to apply JOIN clause. | CDbCommandBuilder |
applyLimit() | Alters the SQL to apply LIMIT and OFFSET. | CDbCommandBuilder |
applyOrder() | Alters the SQL to apply ORDER BY. | CDbCommandBuilder |
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 |
bindValues() | Binds parameter values for an SQL command. | CDbCommandBuilder |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
createColumnCriteria() | Creates a query criteria with the specified column values. | CDbCommandBuilder |
createCountCommand() | Creates a COUNT(*) command for a single table. | CDbCommandBuilder |
createCriteria() | Creates a query criteria. | CDbCommandBuilder |
createDeleteCommand() | Creates a DELETE command. | CDbCommandBuilder |
createFindCommand() | Creates a SELECT command for a single table. | CDbCommandBuilder |
createInCondition() | Generates the expression for selecting rows of specified primary key values. | CDbCommandBuilder |
createInsertCommand() | Creates an INSERT command. | CDbCommandBuilder |
createMultipleInsertCommand() | Creates a multiple INSERT command. | CSqliteCommandBuilder |
createPkCondition() | Generates the expression for selecting rows of specified primary key values. | CDbCommandBuilder |
createPkCriteria() | Creates a query criteria with the specified primary key. | CDbCommandBuilder |
createSearchCondition() | Generates the expression for searching the specified keywords within a list of columns. | CDbCommandBuilder |
createSqlCommand() | Creates a command based on a given SQL statement. | CDbCommandBuilder |
createUpdateCommand() | Creates an UPDATE command. | CDbCommandBuilder |
createUpdateCounterCommand() | Creates an UPDATE command that increments/decrements certain columns. | CDbCommandBuilder |
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 |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
getDbConnection() | Returns database connection. | CDbCommandBuilder |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getLastInsertID() | Returns the last insertion ID for the specified table. | CDbCommandBuilder |
getSchema() | Returns the schema for this command builder. | CDbCommandBuilder |
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 |
raiseEvent() | Raises an event. | CComponent |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
composeMultipleInsertCommand() | Creates a multiple INSERT command. | CDbCommandBuilder |
createCompositeInCondition() | Generates the expression for selecting rows with specified composite key values. | CSqliteCommandBuilder |
ensureTable() | Checks if the parameter is a valid table schema. | CDbCommandBuilder |
getIntegerPrimaryKeyDefaultValue() | Returns default value of the integer/serial primary key. Default value means that the next | CDbCommandBuilder |
方法详情
createCompositeInCondition()
方法
protected string createCompositeInCondition(CDbTableSchema $table, array $values, string $prefix)
| ||
$table | CDbTableSchema | the table schema |
$values | array | list of primary key values to be selected within |
$prefix | string | column prefix (ended with dot) |
{return} | string | the expression for selection |
源码: framework/db/schema/sqlite/CSqliteCommandBuilder.php#29 (显示)
protected function createCompositeInCondition($table,$values,$prefix)
{
$keyNames=array();
foreach(array_keys($values[0]) as $name)
$keyNames[]=$prefix.$table->columns[$name]->rawName;
$vs=array();
foreach($values as $value)
$vs[]=implode("||','||",$value);
return implode("||','||",$keyNames).' IN ('.implode(', ',$vs).')';
}
Generates the expression for selecting rows with specified composite key values. This method is overridden because SQLite does not support the default IN expression with composite columns.
createMultipleInsertCommand()
方法
(自版本 v1.1.14 可用)
public CDbCommand createMultipleInsertCommand(mixed $table, array $data)
| ||
$table | mixed | the table schema (CDbTableSchema) or the table name (string). |
$data | array | list data to be inserted, each value should be an array in format (column name=>column value). If a key is not a valid column name, the corresponding value will be ignored. |
{return} | CDbCommand | multiple insert command |
源码: framework/db/schema/sqlite/CSqliteCommandBuilder.php#51 (显示)
public function createMultipleInsertCommand($table,array $data)
{
$templates=array(
'main'=>'INSERT INTO {{tableName}} ({{columnInsertNames}}) {{rowInsertValues}}',
'columnInsertValue'=>'{{value}} AS {{column}}',
'columnInsertValueGlue'=>', ',
'rowInsertValue'=>'SELECT {{columnInsertValues}}',
'rowInsertValueGlue'=>' UNION ',
'columnInsertNameGlue'=>', ',
);
return $this->composeMultipleInsertCommand($table,$data,$templates);
}
Creates a multiple INSERT command. This method could be used to achieve better performance during insertion of the large amount of data into the database tables. Note that SQLite does not keep original order of the inserted rows.