| | |
| | | var $dbName = ''; // logical database name on that server |
| | | var $dbUser = ''; // database authorized user |
| | | var $dbPass = ''; // user's password |
| | | var $dbCharset = 'utf8';// Database charset |
| | | var $dbNewLink = false; // Return a new linkID when connect is called again |
| | | var $dbClientFlags = 0; // MySQL Client falgs |
| | | var $linkId = 0; // last result of mysql_connect() |
| | | var $queryId = 0; // last result of mysql_query() |
| | | var $record = array(); // last record fetched |
| | | var $autoCommit = 1; // Autocommit Transactions |
| | | var $autoCommit = 1; // Autocommit Transactions |
| | | var $currentRow; // current row number |
| | | var $errorNumber = 0; // last error number |
| | | var $errorMessage = ''; // last error message |
| | |
| | | var $show_error_messages = true; |
| | | |
| | | // constructor |
| | | function db() |
| | | { |
| | | public function __construct() { |
| | | |
| | | global $conf; |
| | | $this->dbHost = $conf['db_host']; |
| | |
| | | $this->dbUser = $conf['db_user']; |
| | | $this->dbPass = $conf['db_password']; |
| | | $this->dbCharset = $conf['db_charset']; |
| | | $this->dbNewLink = $conf['db_new_link']; |
| | | $this->dbClientFlags = $conf['db_client_flags']; |
| | | //$this->connect(); |
| | | } |
| | | |
| | | public function __destruct() { |
| | | $this->closeConn(); |
| | | } |
| | | |
| | | // error handler |
| | | function updateError($location) |
| | | { |
| | | global $app; |
| | | $this->errorNumber = mysql_errno($this->linkId); |
| | | $this->errorMessage = mysql_error($this->linkId); |
| | | $this->errorNumber = @mysql_errno($this->linkId); |
| | | $this->errorMessage = @mysql_error($this->linkId); |
| | | $this->errorLocation = $location; |
| | | if($this->errorNumber && $this->show_error_messages && method_exists($app,'log')) |
| | | { |
| | |
| | | { |
| | | if($this->linkId == 0) |
| | | { |
| | | $this->linkId = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass); |
| | | $this->linkId = @mysql_connect($this->dbHost, $this->dbUser, $this->dbPass, $this->dbNewLink, $this->dbClientFlags); |
| | | if(!$this->linkId) |
| | | { |
| | | $this->updateError('DB::connect()-> mysql_connect'); |
| | |
| | | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | public function closeConn() |
| | | { |
| | | if($this->linkId) |
| | |
| | | if($col['autoInc'] == true) $sql .= 'auto_increment '; |
| | | $sql.= ','; |
| | | // key Definitionen |
| | | if($col['option'] == 'primary') $index .= "PRIMARY KEY (".$col['name']."),"; |
| | | if($col['option'] == 'index') $index .= "INDEX (".$col['name']."),"; |
| | | if($col['option'] == 'unique') $index .= "UNIQUE (".$col['name']."),"; |
| | | if($col['option'] == 'primary') $index .= 'PRIMARY KEY ('.$col['name'].'),'; |
| | | if($col['option'] == 'index') $index .= 'INDEX ('.$col['name'].'),'; |
| | | if($col['option'] == 'unique') $index .= 'UNIQUE ('.$col['name'].'),'; |
| | | } |
| | | $sql .= $index; |
| | | $sql = substr($sql,0,-1); |
| | | $sql .= ')'; |
| | | |
| | | $this->query($sql); |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /* |
| | | $columns = array(action => add | alter | drop |
| | |
| | | $sql = "ALTER TABLE $table_name "; |
| | | foreach($columns as $col){ |
| | | if($col['action'] == 'add') { |
| | | $sql .= "ADD ".$col['name'].' '.$this->mapType($col['type'],$col['typeValue']).' '; |
| | | $sql .= 'ADD '.$col['name'].' '.$this->mapType($col['type'],$col['typeValue']).' '; |
| | | } elseif ($col['action'] == 'alter') { |
| | | $sql .= "CHANGE ".$col['name']." ".$col['name_new'].' '.$this->mapType($col['type'],$col['typeValue']).' '; |
| | | $sql .= 'CHANGE '.$col['name'].' '.$col['name_new'].' '.$this->mapType($col['type'],$col['typeValue']).' '; |
| | | } elseif ($col['action'] == 'drop') { |
| | | $sql .= "DROP ".$col['name'].' '; |
| | | $sql .= 'DROP '.$col['name'].' '; |
| | | } |
| | | if($col['action'] != 'drop') { |
| | | if($col['defaultValue'] != '') $sql .= "DEFAULT '".$col['defaultValue']."' "; |
| | |
| | | } |
| | | if($col['autoInc'] == true) $sql .= 'auto_increment '; |
| | | $sql.= ','; |
| | | // key Definitionen |
| | | if($col['option'] == 'primary') $index .= "PRIMARY KEY (".$col['name']."),"; |
| | | if($col['option'] == 'index') $index .= "INDEX (".$col['name']."),"; |
| | | if($col['option'] == 'unique') $index .= "UNIQUE (".$col['name']."),"; |
| | | // Index definitions |
| | | if($col['option'] == 'primary') $index .= 'PRIMARY KEY ('.$col['name'].'),'; |
| | | if($col['option'] == 'index') $index .= 'INDEX ('.$col['name'].'),'; |
| | | if($col['option'] == 'unique') $index .= 'UNIQUE ('.$col['name'].'),'; |
| | | } |
| | | } |
| | | $sql .= $index; |
| | |
| | | return $this->query($sql); |
| | | } |
| | | |
| | | // gibt Array mit Tabellennamen zurück |
| | | // gibt Array mit Tabellennamen zur�ck |
| | | function getTables($database_name = '') { |
| | | |
| | | if($database_name == '') $database_name = $this->dbName; |
| | |
| | | return $tb_names; |
| | | } |
| | | |
| | | // gibt Feldinformationen zur Tabelle zurück |
| | | // gibt Feldinformationen zur Tabelle zur�ck |
| | | /* |
| | | $columns = array(action => add | alter | drop |
| | | name => Spaltenname |
| | |
| | | global $go_api,$go_info; |
| | | // Tabellenfelder einlesen |
| | | |
| | | if($rows = $go_api->db->queryAllRecords("SHOW FIELDS FROM ".$table_name)){ |
| | | if($rows = $go_api->db->queryAllRecords('SHOW FIELDS FROM '.$table_name)){ |
| | | foreach($rows as $row) { |
| | | $name = $row[0]; |
| | | $default = $row[4]; |