summaryrefslogtreecommitdiff
path: root/framework/db/schema/CDbExpression.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/db/schema/CDbExpression.php')
-rw-r--r--framework/db/schema/CDbExpression.php61
1 files changed, 61 insertions, 0 deletions
diff --git a/framework/db/schema/CDbExpression.php b/framework/db/schema/CDbExpression.php
new file mode 100644
index 0000000..5fc8316
--- /dev/null
+++ b/framework/db/schema/CDbExpression.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * CDbExpression class file.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @link http://www.yiiframework.com/
+ * @copyright Copyright &copy; 2008-2011 Yii Software LLC
+ * @license http://www.yiiframework.com/license/
+ */
+
+/**
+ * CDbExpression represents a DB expression that does not need escaping.
+ * CDbExpression is mainly used in {@link CActiveRecord} as attribute values.
+ * When inserting or updating a {@link CActiveRecord}, attribute values of
+ * type CDbExpression will be directly put into the corresponding SQL statement
+ * without escaping. A typical usage is that an attribute is set with 'NOW()'
+ * expression so that saving the record would fill the corresponding column
+ * with the current DB server timestamp.
+ *
+ * Starting from version 1.1.1, one can also specify parameters to be bound
+ * for the expression. For example, if the expression is 'LOWER(:value)', then
+ * one can set {@link params} to be <code>array(':value'=>$value)</code>.
+ *
+ * @author Qiang Xue <qiang.xue@gmail.com>
+ * @version $Id: CDbExpression.php 3515 2011-12-28 12:29:24Z mdomba $
+ * @package system.db.schema
+ */
+class CDbExpression extends CComponent
+{
+ /**
+ * @var string the DB expression
+ */
+ public $expression;
+ /**
+ * @var array list of parameters that should be bound for this expression.
+ * The keys are placeholders appearing in {@link expression}, while the values
+ * are the corresponding parameter values.
+ * @since 1.1.1
+ */
+ public $params=array();
+
+ /**
+ * Constructor.
+ * @param string $expression the DB expression
+ * @param array $params parameters
+ */
+ public function __construct($expression,$params=array())
+ {
+ $this->expression=$expression;
+ $this->params=$params;
+ }
+
+ /**
+ * String magic method
+ * @return string the DB expression
+ */
+ public function __toString()
+ {
+ return $this->expression;
+ }
+} \ No newline at end of file