adoSchema::addSQL PHP Method

addSQL() public method

Adds SQL into the SQL array.
public addSQL ( mixed $sql = NULL ) : boolean
$sql mixed SQL to Add
return boolean TRUE if successful, else FALSE.
    function addSQL($sql = NULL)
    {
        if (is_array($sql)) {
            foreach ($sql as $line) {
                $this->addSQL($line);
            }
            return TRUE;
        }
        if (is_string($sql)) {
            $this->sqlArray[] = $sql;
            // if executeInline is enabled, and either no errors have occurred or continueOnError is enabled, execute SQL.
            if ($this->ExecuteInline() && ($this->success == 2 || $this->ContinueOnError())) {
                $saved = $this->db->debug;
                $this->db->debug = $this->debug;
                $ok = $this->db->Execute($sql);
                $this->db->debug = $saved;
                if (!$ok) {
                    if ($this->debug) {
                        ADOConnection::outp($this->db->ErrorMsg());
                    }
                    $this->success = 1;
                }
            }
            return TRUE;
        }
        return FALSE;
    }

Usage Example

 /**
  * Parse an XML database file and output the corresponding SQL statements.
  * See lib/pkp/dtd/xmlSchema.dtd for the format of the XML files.
  */
 function execute()
 {
     require_once './lib/pkp/lib/adodb/adodb-xmlschema.inc.php';
     if (in_array($this->command, array('print', 'save'))) {
         // Don't connect to actual database (so parser won't build upgrade XML)
         $conn = new DBConnection(Config::getVar('database', 'driver'), null, null, null, null, true, Config::getVar('i18n', 'connection_charset'));
         $dbconn = $conn->getDBConn();
     } else {
         // Create or upgrade existing database
         $dbconn =& DBConnection::getConn();
     }
     $schema = new adoSchema($dbconn);
     $dict =& $schema->dict;
     $dict->SetCharSet(Config::getVar('i18n', 'database_charset'));
     if ($this->type == 'schema') {
         // Parse XML schema files
         $sql = $schema->parseSchema($this->inputFile);
         switch ($this->command) {
             case 'execute':
                 $schema->ExecuteSchema();
                 break;
             case 'save':
             case 'save_upgrade':
                 $schema->SaveSQL($this->outputFile);
                 break;
             case 'print':
             case 'print_upgrade':
             default:
                 echo @$schema->PrintSQL('TEXT') . "\n";
                 break;
         }
     } else {
         if ($this->type == 'data') {
             // Parse XML data files
             $dataXMLParser = new DBDataXMLParser();
             $dataXMLParser->setDBConn($dbconn);
             $sql = $dataXMLParser->parseData($this->inputFile);
             switch ($this->command) {
                 case 'execute':
                     $schema->addSQL($sql);
                     $schema->ExecuteSchema();
                     break;
                 case 'save':
                 case 'save_upgrade':
                     $schema->addSQL($sql);
                     $schema->SaveSQL($this->outputFile);
                     break;
                 case 'print':
                 case 'print_upgrade':
                 default:
                     $schema->addSQL($sql);
                     echo @$schema->PrintSQL('TEXT') . "\n";
                     break;
             }
             $schema->destroy();
             $dataXMLParser->destroy();
         }
     }
 }