function CreateTableSQL($tabname, $flds, $tableoptions=array())
	{
		list($lines,$pkey,$idxs) = $this->_GenFields($flds, true);
		// genfields can return FALSE at times
		if ($lines == null) $lines = array();

		$taboptions = $this->_Options($tableoptions);
		$tabname = $this->TableName ($tabname);
		$sql = $this->_TableSQL($tabname,$lines,$pkey,$taboptions);

		// ggiunta - 2006/10/12 - KLUDGE:
        // if we are on autoincrement, and table options includes REPLACE, the
        // autoincrement sequence has already been dropped on table creation sql, so
        // we avoid passing REPLACE to trigger creation code. This prevents
        // creating sql that double-drops the sequence
        if ($this->autoIncrement && isset($taboptions['REPLACE']))
        	unset($taboptions['REPLACE']);
		$tsql = $this->_Triggers($tabname,$taboptions);
		foreach($tsql as $s) $sql[] = $s;

		if (is_array($idxs)) {
			foreach($idxs as $idx => $idxdef) {
				$sql_idxs = $this->CreateIndexSql($idx, $tabname,  $idxdef['cols'], $idxdef['opts']);
				$sql = array_merge($sql, $sql_idxs);
			}
		}

		return $sql;
	}
function CreateTableSQL($tabname, $flds, $tableoptions=array())
	{
		list($lines,$pkey,$idxs) = $this->_GenFields($flds, true);
		// genfields can return FALSE at times
		if ($lines == null) $lines = array();

		$taboptions = $this->_Options($tableoptions);
		$tabname = $this->TableName ($tabname);
		$sql = $this->_TableSQL($tabname,$lines,$pkey,$taboptions);

		// ggiunta - 2006/10/12 - KLUDGE:
        // if we are on autoincrement, and table options includes REPLACE, the
        // autoincrement sequence has already been dropped on table creation sql, so
        // we avoid passing REPLACE to trigger creation code. This prevents
        // creating sql that double-drops the sequence
        if ($this->autoIncrement && isset($taboptions['REPLACE']))
        	unset($taboptions['REPLACE']);
		$tsql = $this->_Triggers($tabname,$taboptions);
		foreach($tsql as $s) $sql[] = $s;

		if (is_array($idxs)) {
			foreach($idxs as $idx => $idxdef) {
				$sql_idxs = $this->CreateIndexSql($idx, $tabname,  $idxdef['cols'], $idxdef['opts']);
				$sql = array_merge($sql, $sql_idxs);
			}
		}

		return $sql;
	}
function CreateTableSQL ( $ tabname , $ flds , $ tableoptions = array ( ) ) { list ( $ lines , $ pkey , $ idxs ) = $ this -> _GenFields ( $ flds , true ) ; // genfields can return FALSE at times if ( $ lines == null ) $ lines = array ( ) ; $ taboptions = $ this -> _Options ( $ tableoptions ) ; $ tabname = $ this -> TableName ( $ tabname ) ; $ sql = $ this -> _TableSQL ( $ tabname , $ lines , $ pkey , $ taboptions ) ; // ggiunta - 2006/10/12 - KLUDGE: // if we are on autoincrement, and table options includes REPLACE, the // autoincrement sequence has already been dropped on table creation sql, so // we avoid passing REPLACE to trigger creation code. This prevents // creating sql that double-drops the sequence if ( $ this -> autoIncrement && isset ( $ taboptions [ 'REPLACE' ] ) ) unset ( $ taboptions [ 'REPLACE' ] ) ; $ tsql = $ this -> _Triggers ( $ tabname , $ taboptions ) ; foreach ( $ tsql as $ s ) $ sql [ ] = $ s ; if ( is_array ( $ idxs ) ) { foreach ( $ idxs as $ idx => $ idxdef ) { $ sql_idxs = $ this -> CreateIndexSql ( $ idx , $ tabname , $ idxdef [ 'cols' ] , $ idxdef [ 'opts' ] ) ; $ sql = array_merge ( $ sql , $ sql_idxs ) ; } } return $ sql ; }
Generate the SQL to create table. Returns an array of sql strings.
Generate the SQL to create table . Returns an array of sql strings .