本文整理汇总了PHP中Vtiger_Utils::IsDestructiveSql方法的典型用法代码示例。如果您正苦于以下问题:PHP Vtiger_Utils::IsDestructiveSql方法的具体用法?PHP Vtiger_Utils::IsDestructiveSql怎么用?PHP Vtiger_Utils::IsDestructiveSql使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vtiger_Utils
的用法示例。
在下文中一共展示了Vtiger_Utils::IsDestructiveSql方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: import_Tables
/**
* Import Tables of the module
* @access private
*/
function import_Tables($modulenode)
{
if (empty($modulenode->tables) || empty($modulenode->tables->table)) {
return;
}
/**
* Record the changes in schema file
*/
$schemafile = @fopen("modules/{$modulenode->name}/schema.xml", 'w');
if ($schemafile) {
fwrite($schemafile, "<?xml version='1.0'?>\n");
fwrite($schemafile, "<schema>\n");
fwrite($schemafile, "\t<tables>\n");
}
// Import the table via queries
foreach ($modulenode->tables->table as $tablenode) {
$tablename = $tablenode->name;
$tablesql = "{$tablenode->sql}";
// Convert to string format
// Save the information in the schema file.
if ($schemafile) {
fwrite($schemafile, "\t\t<table>\n");
fwrite($schemafile, "\t\t\t<name>{$tablename}</name>\n");
fwrite($schemafile, "\t\t\t<sql><![CDATA[{$tablesql}]]></sql>\n");
fwrite($schemafile, "\t\t</table>\n");
}
// Avoid executing SQL that will DELETE or DROP table data
if (Vtiger_Utils::IsCreateSql($tablesql)) {
if (!Vtiger_Utils::checkTable($tablename)) {
self::log("SQL: {$tablesql} ... ", false);
Vtiger_Utils::ExecuteQuery($tablesql);
self::log("DONE");
}
} else {
if (Vtiger_Utils::IsDestructiveSql($tablesql)) {
self::log("SQL: {$tablesql} ... SKIPPED");
} else {
self::log("SQL: {$tablesql} ... ", false);
Vtiger_Utils::ExecuteQuery($tablesql);
self::log("DONE");
}
}
}
if ($schemafile) {
fwrite($schemafile, "\t</tables>\n");
fwrite($schemafile, "</schema>\n");
fclose($schemafile);
}
}
示例2: import_Tables
/**
* Import Tables of the module
* @access private
*/
function import_Tables($modulenode)
{
if (empty($modulenode->tables) || empty($modulenode->tables->table)) {
return;
}
$adb = PearDatabase::getInstance();
$adb->query('SET FOREIGN_KEY_CHECKS = 0;');
/**
* Record the changes in schema file
*/
if (file_exists("modules/{$modulenode->name}")) {
$fileToOpen = "modules/{$modulenode->name}/schema.xml";
} else {
if (file_exists("modules/Settings/{$modulenode->name}")) {
$fileToOpen = "modules/Settings/{$modulenode->name}/schema.xml";
}
}
$schemafile = fopen($fileToOpen, 'w');
if ($schemafile) {
fwrite($schemafile, "<?xml version='1.0'?>\n");
fwrite($schemafile, "<schema>\n");
fwrite($schemafile, "\t<tables>\n");
}
// Import the table via queries
foreach ($modulenode->tables->table as $tablenode) {
$tablename = $tablenode->name;
$tablesql = "{$tablenode->sql}";
// Convert to string format
// Save the information in the schema file.
fwrite($schemafile, "\t\t<table>\n");
fwrite($schemafile, "\t\t\t<name>{$tablename}</name>\n");
fwrite($schemafile, "\t\t\t<sql><![CDATA[{$tablesql}]]></sql>\n");
fwrite($schemafile, "\t\t</table>\n");
// Avoid executing SQL that will DELETE or DROP table data
if (Vtiger_Utils::IsCreateSql($tablesql)) {
if (!Vtiger_Utils::checkTable($tablename)) {
self::log("SQL: {$tablesql} ... ", false);
Vtiger_Utils::ExecuteQuery($tablesql);
self::log("DONE");
}
} else {
if (Vtiger_Utils::IsDestructiveSql($tablesql)) {
self::log("SQL: {$tablesql} ... SKIPPED");
} else {
self::log("SQL: {$tablesql} ... ", false);
Vtiger_Utils::ExecuteQuery($tablesql);
self::log("DONE");
}
}
}
if ($schemafile) {
fwrite($schemafile, "\t</tables>\n");
fwrite($schemafile, "</schema>\n");
fclose($schemafile);
}
$adb->query('SET FOREIGN_KEY_CHECKS = 1;');
}
示例3: handle_Migration
/**
* Handle migration of the module
* @access private
*/
function handle_Migration($modulenode, $moduleInstance)
{
// TODO Handle module migration SQL
$this->parse_Migration($modulenode);
$cur_version = $moduleInstance->version;
foreach ($this->_migrations as $migversion => $migrationnode) {
// Perform migration only for higher version than current
if (version_compare($cur_version, $migversion, '<')) {
self::log("Migrating to {$migversion} ... STARTED");
if (!empty($migrationnode->tables) && !empty($migrationnode->tables->table)) {
foreach ($migrationnode->tables->table as $tablenode) {
$tablename = $tablenode->name;
$tablesql = "{$tablenode->sql}";
// Convert to string
// Skip SQL which are destructive
if (Vtiger_Utils::IsDestructiveSql($tablesql)) {
self::log("SQL: {$tablesql} ... SKIPPED");
} else {
// Supress any SQL query failures
self::log("SQL: {$tablesql} ... ", false);
Vtiger_Utils::ExecuteQuery($tablesql, true);
self::log("DONE");
}
}
}
self::log("Migrating to {$migversion} ... DONE");
}
}
}