本文整理汇总了PHP中Criteria::setDbName方法的典型用法代码示例。如果您正苦于以下问题:PHP Criteria::setDbName方法的具体用法?PHP Criteria::setDbName怎么用?PHP Criteria::setDbName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Criteria
的用法示例。
在下文中一共展示了Criteria::setDbName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testApplyLimitDuplicateColumnName
public function testApplyLimitDuplicateColumnName()
{
Propel::setDb('oracle', new DBOracle());
$c = new Criteria();
$c->setDbName('oracle');
BookPeer::addSelectColumns($c);
AuthorPeer::addSelectColumns($c);
$c->setLimit(1);
$params = array();
$sql = BasePeer::createSelectSql($c, $params);
$this->assertEquals('SELECT B.* FROM (SELECT A.*, rownum AS PROPEL_ROWNUM FROM (SELECT book.ID AS book_ID, book.TITLE AS book_TITLE, book.ISBN AS book_ISBN, book.PRICE AS book_PRICE, book.PUBLISHER_ID AS book_PUBLISHER_ID, book.AUTHOR_ID AS book_AUTHOR_ID, author.ID AS author_ID, author.FIRST_NAME AS author_FIRST_NAME, author.LAST_NAME AS author_LAST_NAME, author.EMAIL AS author_EMAIL, author.AGE AS author_AGESELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, author.ID, author.FIRST_NAME, author.LAST_NAME, author.EMAIL, author.AGE FROM book, author) A ) B WHERE B.PROPEL_ROWNUM <= 1', $sql, 'applyLimit() creates a subselect with aliased column names when a duplicate column name is found');
}
示例2: testApplyLimitDuplicateColumnNameWithColumn
public function testApplyLimitDuplicateColumnNameWithColumn()
{
Propel::setDb('oracle', new DBOracle());
$c = new Criteria();
$c->setDbName('oracle');
BookPeer::addSelectColumns($c);
AuthorPeer::addSelectColumns($c);
$c->addAsColumn('BOOK_PRICE', BookPeer::PRICE);
$c->setLimit(1);
$params = array();
$asColumns = $c->getAsColumns();
$sql = BasePeer::createSelectSql($c, $params);
$this->assertEquals('SELECT B.* FROM (SELECT A.*, rownum AS PROPEL_ROWNUM FROM (SELECT book.ID AS ORA_COL_ALIAS_0, book.TITLE AS ORA_COL_ALIAS_1, book.ISBN AS ORA_COL_ALIAS_2, book.PRICE AS ORA_COL_ALIAS_3, book.PUBLISHER_ID AS ORA_COL_ALIAS_4, book.AUTHOR_ID AS ORA_COL_ALIAS_5, author.ID AS ORA_COL_ALIAS_6, author.FIRST_NAME AS ORA_COL_ALIAS_7, author.LAST_NAME AS ORA_COL_ALIAS_8, author.EMAIL AS ORA_COL_ALIAS_9, author.AGE AS ORA_COL_ALIAS_10, book.PRICE AS BOOK_PRICE FROM book, author) A ) B WHERE B.PROPEL_ROWNUM <= 1', $sql, 'applyLimit() creates a subselect with aliased column names when a duplicate column name is found');
$this->assertEquals($asColumns, $c->getAsColumns(), 'createSelectSql supplementary add alias column');
}
示例3: doSoftDeleteAll
/**
* Method to soft delete all rows from the a_traitements table.
*
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver).
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doSoftDeleteAll(PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(AbsenceEleveTraitementPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
$selectCriteria = new Criteria();
$selectCriteria->add(AbsenceEleveTraitementPeer::DELETED_AT, null, Criteria::ISNULL);
$selectCriteria->setDbName(AbsenceEleveTraitementPeer::DATABASE_NAME);
$modifyCriteria = new Criteria();
$modifyCriteria->add(AbsenceEleveTraitementPeer::DELETED_AT, time());
return BasePeer::doUpdate($selectCriteria, $modifyCriteria, $con);
}
示例4: doDelete
/**
* Method perform a DELETE on the database, given a Role or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or Role object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(RolePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
// invalidate the cache for all objects of this type, since we have no
// way of knowing (without running a query) what objects should be invalidated
// from the cache based on this Criteria.
RolePeer::clearInstancePool();
// rename for clarity
$criteria = clone $values;
} elseif ($values instanceof Role) {
// invalidate the cache for this single object
RolePeer::removeInstanceFromPool($values);
// create criteria based on pk values
$criteria = $values->buildPkeyCriteria();
} else {
// it must be the primary key
$criteria = new Criteria(self::DATABASE_NAME);
$criteria->add(RolePeer::ID, (array) $values, Criteria::IN);
foreach ((array) $values as $singleval) {
// we can invalidate the cache for this single object
RolePeer::removeInstanceFromPool($singleval);
}
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
// initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->beginTransaction();
$affectedRows += RolePeer::doOnDeleteCascade($criteria, $con);
// Because this db requires some delete cascade/set null emulation, we have to
// clear the cached instance *after* the emulation has happened (since
// instances get re-added by the select statement contained therein).
if ($values instanceof Criteria) {
RolePeer::clearInstancePool();
} else {
// it's a PK or object
RolePeer::removeInstanceFromPool($values);
}
$affectedRows += BasePeer::doDelete($criteria, $con);
// invalidate objects in EmployeePeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule.
EmployeePeer::clearInstancePool();
// invalidate objects in UserPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule.
UserPeer::clearInstancePool();
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例5: doDelete
/**
* Performs a DELETE on the database, given a Proveedor or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or Proveedor object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(ProveedorPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
// rename for clarity
$criteria = clone $values;
} elseif ($values instanceof Proveedor) {
// it's a model object
// create criteria based on pk values
$criteria = $values->buildPkeyCriteria();
} else {
// it's a primary key, or an array of pks
$criteria = new Criteria(self::DATABASE_NAME);
$criteria->add(ProveedorPeer::IDPROVEEDOR, (array) $values, Criteria::IN);
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
// initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->beginTransaction();
// cloning the Criteria in case it's modified by doSelect() or doSelectStmt()
$c = clone $criteria;
$affectedRows += ProveedorPeer::doOnDeleteCascade($c, $con);
// Because this db requires some delete cascade/set null emulation, we have to
// clear the cached instance *after* the emulation has happened (since
// instances get re-added by the select statement contained therein).
if ($values instanceof Criteria) {
ProveedorPeer::clearInstancePool();
} elseif ($values instanceof Proveedor) {
// it's a model object
ProveedorPeer::removeInstanceFromPool($values);
} else {
// it's a primary key, or an array of pks
foreach ((array) $values as $singleval) {
ProveedorPeer::removeInstanceFromPool($singleval);
}
}
$affectedRows += BasePeer::doDelete($criteria, $con);
ProveedorPeer::clearRelatedInstancePool();
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例6: doDelete
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(TipodocentePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
TipodocentePeer::clearInstancePool();
$criteria = clone $values;
} elseif ($values instanceof Tipodocente) {
TipodocentePeer::removeInstanceFromPool($values);
$criteria = $values->buildPkeyCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
$criteria->add(TipodocentePeer::ID, (array) $values, Criteria::IN);
foreach ((array) $values as $singleval) {
TipodocentePeer::removeInstanceFromPool($singleval);
}
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->beginTransaction();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例7: doDelete
public static function doDelete($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(VCourseDayPeer::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values;
} elseif ($values instanceof VCourseDay) {
$criteria = $values->buildCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
if (count($values) == count($values, COUNT_RECURSIVE)) {
$values = array($values);
}
$vals = array();
foreach ($values as $value) {
}
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->begin();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
示例8: doSelectWithTitle
public static function doSelectWithTitle(Criteria $c, $culture = null, $include_unpublished_pages = false, $con = null)
{
$dbMap = Propel::getDatabaseMap($c->getDbName());
if ($con === null) {
$con = Propel::getConnection($c->getDbName());
}
if ($culture === null) {
$culture = sfContext::getInstance()->getUser()->getCulture();
}
// Set the correct dbName if it has not been overridden
if ($c->getDbName() == Propel::getDefaultDB()) {
$c->setDbName(self::DATABASE_NAME);
}
self::addSelectColumns($c);
$startcol = self::NUM_COLUMNS - self::NUM_LAZY_LOAD_COLUMNS + 1;
$c->addSelectColumn(sfSimpleCMSSlotPeer::VALUE);
if (!$include_unpublished_pages) {
$c->add(self::IS_PUBLISHED, true);
}
// Start of the complicated stuff
// ------------------------------
// big hack to have the join operate on three conditions
$c->addJoin(sfSimpleCMSSlotPeer::PAGE_ID, sfSimpleCMSPagePeer::ID . ' AND ' . sfSimpleCMSSlotPeer::CULTURE . ' = ? AND ' . sfSimpleCMSSlotPeer::NAME . ' = \'title\'', Criteria::RIGHT_JOIN);
// but now we need to populate the statement by hand
$params = array();
$sql = BasePeer::createSelectSql($c, $params);
array_unshift($params, array('column' => sfSimpleCMSSlotPeer::CULTURE, 'table' => sfSimpleCMSSlotPeer::TABLE_NAME, 'value' => $culture));
$stmt = $con->prepareStatement($sql);
$stmt->setLimit($c->getLimit());
$stmt->setOffset($c->getOffset());
$i = 1;
foreach ($params as $param) {
$tableName = $param['table'];
$columnName = $param['column'];
$value = $param['value'];
if ($value === null) {
$stmt->setNull($i++);
} else {
$cMap = $dbMap->getTable($tableName)->getColumn($columnName);
$setter = 'set' . CreoleTypes::getAffix($cMap->getCreoleType());
$stmt->{$setter}($i++, $value);
}
}
$rs = $stmt->executeQuery(ResultSet::FETCHMODE_NUM);
// ----------------------------
// End of the complicated stuff
/*
// The complicated code above is there just to add a join on the three conditions
// It could be achieved in a simpler way with these lines
$c->addJoin(sfSimpleCMSSlotPeer::PAGE_ID, sfSimpleCMSPagePeer::ID, Criteria::RIGHT_JOIN);
$c->add(sfSimpleCMSSlotPeer::CULTURE, $culture);
$c->add(sfSimpleCMSSlotPeer::NAME, 'title');
// But then pages with no title would not be visible in menus
// So we do it with more code and it's both safe and functional
*/
$results = array();
while ($rs->next()) {
$page = new sfSimpleCMSPage();
$page->hydrate($rs);
//$page->setCulture($culture);
$page->setTitle($rs->getString($startcol));
$results[] = $page;
}
return $results;
}
示例9: doDelete
/**
* Method perform a DELETE on the database, given a ExamCommentDig or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or ExamCommentDig object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(ExamCommentDigPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
// invalidate the cache for all objects of this type, since we have no
// way of knowing (without running a query) what objects should be invalidated
// from the cache based on this Criteria.
ExamCommentDigPeer::clearInstancePool();
// rename for clarity
$criteria = clone $values;
} elseif ($values instanceof ExamCommentDig) {
// invalidate the cache for this single object
ExamCommentDigPeer::removeInstanceFromPool($values);
// create criteria based on pk values
$criteria = $values->buildPkeyCriteria();
} else {
// it must be the primary key
$criteria = new Criteria(self::DATABASE_NAME);
// primary key is composite; we therefore, expect
// the primary key passed to be an array of pkey
// values
if (count($values) == count($values, COUNT_RECURSIVE)) {
// array is not multi-dimensional
$values = array($values);
}
foreach ($values as $value) {
$criterion = $criteria->getNewCriterion(ExamCommentDigPeer::IP, $value[0]);
$criterion->addAnd($criteria->getNewCriterion(ExamCommentDigPeer::COMMENT_ID, $value[1]));
$criteria->addOr($criterion);
// we can invalidate the cache for this single PK
ExamCommentDigPeer::removeInstanceFromPool($value);
}
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
// initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->beginTransaction();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例10: doDelete
public static function doDelete($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(EtimeAudiencePeer::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values;
} elseif ($values instanceof EtimeAudience) {
$criteria = $values->buildPkeyCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
if (count($values) == count($values, COUNT_RECURSIVE)) {
$values = array($values);
}
$vals = array();
foreach ($values as $value) {
$vals[0][] = $value[0];
$vals[1][] = $value[1];
}
$criteria->add(EtimeAudiencePeer::ETIME_ID, $vals[0], Criteria::IN);
$criteria->add(EtimeAudiencePeer::AUDIENCE_ID, $vals[1], Criteria::IN);
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->begin();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
示例11: doDelete
/**
* Performs a DELETE on the database, given a Traspaso or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or Traspaso object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(TraspasoPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
// rename for clarity
$criteria = clone $values;
} elseif ($values instanceof Traspaso) {
// it's a model object
// create criteria based on pk values
$criteria = $values->buildPkeyCriteria();
} else {
// it's a primary key, or an array of pks
$criteria = new Criteria(TraspasoPeer::DATABASE_NAME);
// primary key is composite; we therefore, expect
// the primary key passed to be an array of pkey values
if (count($values) == count($values, COUNT_RECURSIVE)) {
// array is not multi-dimensional
$values = array($values);
}
foreach ($values as $value) {
$criterion = $criteria->getNewCriterion(TraspasoPeer::IDINVENTARIOLUGAR, $value[0]);
$criterion->addAnd($criteria->getNewCriterion(TraspasoPeer::IDLUGARREMITENTE, $value[1]));
$criterion->addAnd($criteria->getNewCriterion(TraspasoPeer::IDLUGARDESTINATARIO, $value[2]));
$criteria->addOr($criterion);
}
}
// Set the correct dbName
$criteria->setDbName(TraspasoPeer::DATABASE_NAME);
$affectedRows = 0;
// initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->beginTransaction();
// cloning the Criteria in case it's modified by doSelect() or doSelectStmt()
$c = clone $criteria;
$affectedRows += TraspasoPeer::doOnDeleteCascade($c, $con);
// Because this db requires some delete cascade/set null emulation, we have to
// clear the cached instance *after* the emulation has happened (since
// instances get re-added by the select statement contained therein).
if ($values instanceof Criteria) {
TraspasoPeer::clearInstancePool();
} elseif ($values instanceof Traspaso) {
// it's a model object
TraspasoPeer::removeInstanceFromPool($values);
} else {
// it's a primary key, or an array of pks
foreach ((array) $values as $singleval) {
TraspasoPeer::removeInstanceFromPool($singleval);
}
}
$affectedRows += BasePeer::doDelete($criteria, $con);
TraspasoPeer::clearRelatedInstancePool();
$con->commit();
return $affectedRows;
} catch (Exception $e) {
$con->rollBack();
throw $e;
}
}
示例12: doDelete
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(RelAnioActividadDocentePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
RelAnioActividadDocentePeer::clearInstancePool();
$criteria = clone $values;
} elseif ($values instanceof RelAnioActividadDocente) {
RelAnioActividadDocentePeer::removeInstanceFromPool($values);
$criteria = $values->buildPkeyCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
if (count($values) == count($values, COUNT_RECURSIVE)) {
$values = array($values);
}
foreach ($values as $value) {
$criterion = $criteria->getNewCriterion(RelAnioActividadDocentePeer::FK_ANIO_ACTIVIDAD_ID, $value[0]);
$criterion->addAnd($criteria->getNewCriterion(RelAnioActividadDocentePeer::FK_DOCENTE_ID, $value[1]));
$criteria->addOr($criterion);
RelAnioActividadDocentePeer::removeInstanceFromPool($value);
}
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->beginTransaction();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例13: doDelete
public static function doDelete($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(VSubjectAgendaPeer::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values;
} elseif ($values instanceof VSubjectAgenda) {
$criteria = $values->buildPkeyCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
if (count($values) == count($values, COUNT_RECURSIVE)) {
$values = array($values);
}
$vals = array();
foreach ($values as $value) {
$vals[0][] = $value[0];
$vals[1][] = $value[1];
$vals[2][] = $value[2];
$vals[3][] = $value[3];
}
$criteria->add(VSubjectAgendaPeer::COURSE_SCHEDULE_ID, $vals[0], Criteria::IN);
$criteria->add(VSubjectAgendaPeer::CLASS_GROUP_ID, $vals[1], Criteria::IN);
$criteria->add(VSubjectAgendaPeer::SUBJECT_CURR_ID, $vals[2], Criteria::IN);
$criteria->add(VSubjectAgendaPeer::ACADEMIC_CALENDAR_ID, $vals[3], Criteria::IN);
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->begin();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}
示例14: doDelete
/**
* Method perform a DELETE on the database, given a sfAsset or Criteria object OR a primary key value.
*
* @param mixed $values Criteria or sfAsset object or primary key or array of primary keys
* which is used to create the DELETE statement
* @param PropelPDO $con the connection to use
* @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows
* if supported by native driver or if emulated using Propel.
* @throws PropelException Any exceptions caught during processing will be
* rethrown wrapped into a PropelException.
*/
public static function doDelete($values, PropelPDO $con = null)
{
if ($con === null) {
$con = Propel::getConnection(sfAssetPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
}
if ($values instanceof Criteria) {
// invalidate the cache for all objects of this type, since we have no
// way of knowing (without running a query) what objects should be invalidated
// from the cache based on this Criteria.
sfAssetPeer::clearInstancePool();
// rename for clarity
$criteria = clone $values;
} elseif ($values instanceof sfAsset) {
// invalidate the cache for this single object
sfAssetPeer::removeInstanceFromPool($values);
// create criteria based on pk values
$criteria = $values->buildPkeyCriteria();
} else {
// it must be the primary key
$criteria = new Criteria(self::DATABASE_NAME);
$criteria->add(sfAssetPeer::ID, (array) $values, Criteria::IN);
foreach ((array) $values as $singleval) {
// we can invalidate the cache for this single object
sfAssetPeer::removeInstanceFromPool($singleval);
}
}
// Set the correct dbName
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
// initialize var to track total num of affected rows
try {
// use transaction because $criteria could contain info
// for more than one table or we could emulating ON DELETE CASCADE, etc.
$con->beginTransaction();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollBack();
throw $e;
}
}
示例15: doDelete
public static function doDelete($values, $con = null)
{
if ($con === null) {
$con = Propel::getConnection(VOpacPeer::DATABASE_NAME);
}
if ($values instanceof Criteria) {
$criteria = clone $values;
} elseif ($values instanceof VOpac) {
$criteria = $values->buildPkeyCriteria();
} else {
$criteria = new Criteria(self::DATABASE_NAME);
if (count($values) == count($values, COUNT_RECURSIVE)) {
$values = array($values);
}
$vals = array();
foreach ($values as $value) {
$vals[0][] = $value[0];
$vals[1][] = $value[1];
$vals[2][] = $value[2];
$vals[3][] = $value[3];
$vals[4][] = $value[4];
}
$criteria->add(VOpacPeer::CATALOG_ID, $vals[0], Criteria::IN);
$criteria->add(VOpacPeer::DEPARTMENT_ID, $vals[1], Criteria::IN);
$criteria->add(VOpacPeer::CAT_CATEGORY_ID, $vals[2], Criteria::IN);
$criteria->add(VOpacPeer::COL_STATUS_ID, $vals[3], Criteria::IN);
$criteria->add(VOpacPeer::COL_LOCATION_ID, $vals[4], Criteria::IN);
}
$criteria->setDbName(self::DATABASE_NAME);
$affectedRows = 0;
try {
$con->begin();
$affectedRows += BasePeer::doDelete($criteria, $con);
$con->commit();
return $affectedRows;
} catch (PropelException $e) {
$con->rollback();
throw $e;
}
}