本文整理汇总了PHP中PHPUnit_Extensions_Database_Operation_Insert::buildOperationQuery方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPUnit_Extensions_Database_Operation_Insert::buildOperationQuery方法的具体用法?PHP PHPUnit_Extensions_Database_Operation_Insert::buildOperationQuery怎么用?PHP PHPUnit_Extensions_Database_Operation_Insert::buildOperationQuery使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPUnit_Extensions_Database_Operation_Insert
的用法示例。
在下文中一共展示了PHPUnit_Extensions_Database_Operation_Insert::buildOperationQuery方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* @param PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection
* @param PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet
*/
public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet)
{
$insertOperation = new PHPUnit_Extensions_Database_Operation_Insert();
$updateOperation = new PHPUnit_Extensions_Database_Operation_Update();
$databaseDataSet = $connection->createDataSet();
foreach ($dataSet as $table) {
/* @var $table PHPUnit_Extensions_Database_DataSet_ITable */
$databaseTableMetaData = $databaseDataSet->getTableMetaData($table->getTableMetaData()->getTableName());
$insertQuery = $insertOperation->buildOperationQuery($databaseTableMetaData, $table, $connection);
$updateQuery = $updateOperation->buildOperationQuery($databaseTableMetaData, $table, $connection);
$selectQuery = $this->buildOperationQuery($databaseTableMetaData, $table, $connection);
$insertStatement = $connection->getConnection()->prepare($insertQuery);
$updateStatement = $connection->getConnection()->prepare($updateQuery);
$selectStatement = $connection->getConnection()->prepare($selectQuery);
$rowCount = $table->getRowCount();
for ($i = 0; $i < $rowCount; $i++) {
$selectArgs = $this->buildOperationArguments($databaseTableMetaData, $table, $i);
$query = $selectQuery;
$args = $selectArgs;
try {
$selectStatement->execute($selectArgs);
if ($selectStatement->fetchColumn(0) > 0) {
$updateArgs = $updateOperation->buildOperationArguments($databaseTableMetaData, $table, $i);
$query = $updateQuery;
$args = $updateArgs;
$updateStatement->execute($updateArgs);
} else {
$insertArgs = $insertOperation->buildOperationArguments($databaseTableMetaData, $table, $i);
$query = $insertQuery;
$args = $insertArgs;
$insertStatement->execute($insertArgs);
}
} catch (Exception $e) {
throw new PHPUnit_Extensions_Database_Operation_Exception($this->operationName, $query, $args, $table, $e->getMessage());
}
}
}
}