本文整理汇总了PHP中ModelCriteria::getDbName方法的典型用法代码示例。如果您正苦于以下问题:PHP ModelCriteria::getDbName方法的具体用法?PHP ModelCriteria::getDbName怎么用?PHP ModelCriteria::getDbName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelCriteria
的用法示例。
在下文中一共展示了ModelCriteria::getDbName方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: union
/**
* Produces a union-query from two queries.
*
* @todo Implement support for ORDER, LIMIT etc.
*
* @param ModelCriteria $mc1
* @param ModelCriteria $mc2
* @return mixed
*/
public static function union(ModelCriteria $mc1, ModelCriteria $mc2)
{
$dbMap = Propel::getDatabaseMap($mc1->getDbName());
$db = Propel::getDB($mc1->getDbName());
$con = Propel::getConnection($mc1->getDbName(), Propel::CONNECTION_READ);
// we may modify criteria, so copy it first
$c1 = clone $mc1;
$c2 = clone $mc2;
// check that the columns of the main class are already added (if this is the primary ModelCriteria)
if (!$c1->hasSelectClause() && !$c1->getPrimaryCriteria()) {
$c1->addSelfSelectColumns();
}
if (!$c2->hasSelectClause() && !$c2->getPrimaryCriteria()) {
$c2->addSelfSelectColumns();
}
$con->beginTransaction();
try {
$params = array();
$sql1 = BasePeer::createSelectSql($c1, $params);
$sql2 = BasePeer::createSelectSql($c2, $params);
$stmt = $con->prepare("({$sql1}) UNION ALL ({$sql2})");
$db->bindValues($stmt, $params, $dbMap);
$stmt->execute();
$con->commit();
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
return $c1->getFormatter()->init($c1)->format($stmt);
}
示例2: init
/**
* Define the hydration schema based on a query object.
* Fills the Formatter's properties using a Criteria as source
*
* @param ModelCriteria $criteria
*
* @return PropelFormatter The current formatter object
*/
public function init(ModelCriteria $criteria)
{
$this->dbName = $criteria->getDbName();
$this->setClass($criteria->getModelName());
$this->setWith($criteria->getWith());
$this->asColumns = $criteria->getAsColumns();
$this->hasLimit = $criteria->getLimit() != 0;
return $this;
}
示例3: doExplainPlan
/**
* Do Explain Plan for query object or query string
*
* @param PropelPDO $con propel connection
* @param ModelCriteria|string $query query the criteria or the query string
* @throws PropelException
* @return PDOStatement A PDO statement executed using the connection, ready to be fetched
*/
public function doExplainPlan(PropelPDO $con, $query)
{
$con->beginTransaction();
if ($query instanceof ModelCriteria) {
$params = array();
$dbMap = Propel::getDatabaseMap($query->getDbName());
$sql = BasePeer::createSelectSql($query, $params);
} else {
$sql = $query;
}
// unique id for the query string
$uniqueId = uniqid('Propel', true);
$stmt = $con->prepare($this->getExplainPlanQuery($sql, $uniqueId));
if ($query instanceof ModelCriteria) {
$this->bindValues($stmt, $params, $dbMap);
}
$stmt->execute();
// explain plan is save in a table, data must be commit
$con->commit();
$stmt = $con->prepare($this->getExplainPlanReadQuery($uniqueId));
$stmt->execute();
return $stmt;
}
示例4: doExplainPlan
/**
* Do Explain Plan for query object or query string
*
* @param PropelPDO $con propel connection
* @param ModelCriteria|string $query query the criteria or the query string
* @throws PropelException
* @return PDOStatement A PDO statement executed using the connection, ready to be fetched
*/
public function doExplainPlan(PropelPDO $con, $query)
{
if ($query instanceof ModelCriteria) {
$params = array();
$dbMap = Propel::getDatabaseMap($query->getDbName());
$sql = BasePeer::createSelectSql($query, $params);
$sql = 'EXPLAIN ' . $sql;
} else {
$sql = 'EXPLAIN ' . $query;
}
$stmt = $con->prepare($sql);
if ($query instanceof ModelCriteria) {
$this->bindValues($stmt, $params, $dbMap);
}
$stmt->execute();
return $stmt;
}