Project

General

Profile

« Previous | Next » 

Revision 1763

Added by Dietmar almost 12 years ago

  1. fixed methode index_add in WbDatabase, always faild

View differences:

WbDatabase.php
31 31

  
32 32

  
33 33
class WbDatabase {
34
	
34

  
35 35
	private static $_oInstances = array();
36 36

  
37 37
	private $_db_handle = null; // readonly from outside
......
111 111
		}
112 112
		return $this->connected;
113 113
	}
114
	
114

  
115 115
	// Disconnect from the database
116 116
	public function disconnect() {
117 117
		if($this->connected==true) {
......
121 121
			return false;
122 122
		}
123 123
	}
124
	
124

  
125 125
	// Run a query
126 126
	public function query($statement) {
127 127
		$this->iQueryCount++;
......
148 148
			return $result;
149 149
		}
150 150
	}
151
	
151

  
152 152
	// Set the DB error
153 153
	public function set_error($message = null) {
154 154
		global $TABLE_DOES_NOT_EXIST, $TABLE_UNKNOWN;
......
159 159
			$this->error_type = $TABLE_UNKNOWN;
160 160
		}
161 161
	}
162
	
162

  
163 163
	// Return true if there was an error
164 164
	public function is_error() {
165 165
		return (!empty($this->error)) ? true : false;
166 166
	}
167
	
167

  
168 168
	// Return the error
169 169
	public function get_error() {
170 170
		return $this->error;
......
239 239
			return ($keys == $number_fields);
240 240
		}
241 241
	}
242

  
242 243
/*
243 244
 * @param string $table_name: full name of the table (incl. TABLE_PREFIX)
244 245
 * @param string $field_name: name of the field to add
......
299 300

  
300 301
/*
301 302
 * @param string $table_name: full name of the table (incl. TABLE_PREFIX)
302
 * @param string $index_name: name of the new index
303
 * @param string $index_name: name of the new index (empty string for PRIMARY)
303 304
 * @param string $field_list: comma seperated list of fields for this index
304
 * @param string $index_type: kind of index (UNIQUE, PRIMARY, '')
305
 * @param string $index_type: kind of index (PRIMARY, UNIQUE, KEY, FULLTEXT)
305 306
 * @return bool: true if successful, otherwise false and error will be set
306 307
 */
307
	public function index_add($table_name, $index_name, $field_list, $index_type = '')
308
	{
309
		$retval = false;
310
		$field_list = str_replace(' ', '', $field_list);
311
		$field_list = explode(',', $field_list);
312
		$number_fields = sizeof($field_list);
313
		$field_list = '`'.implode('`,`', $field_list).'`';
314
		if( $this->index_exists($table_name, $index_name, $number_fields) ||
315
		    $this->index_exists($table_name, $index_name))
316
		{
317
			$sql  = 'ALTER TABLE `'.$table_name.'` ';
318
			$sql .= 'DROP INDEX `'.$index_name.'`';
319
			if( $this->query($sql, $this->_db_handle))
320
			{
321
				$sql  = 'ALTER TABLE `'.$table_name.'` ';
322
				$sql .= 'ADD '.$index_type.' `'.$index_name.'` ( '.$field_list.' ); ';
323
				if( $this->query($sql, $this->_db_handle)) { $retval = true; }
324
			}
325
		}
326
		return $retval;
327
	}
308
     public function index_add($table_name, $index_name, $field_list, $index_type = 'KEY')
309
     {
310
        $retval = false;
311
        $field_list = str_replace(' ', '', $field_list);
312
        $field_list = explode(',', $field_list);
313
        $number_fields = sizeof($field_list);
314
        $field_list = '`'.implode('`,`', $field_list).'`';
315
        $index_name = $index_type == 'PRIMARY' ? $index_type : $index_name;
316
        if( $this->index_exists($table_name, $index_name, $number_fields) ||
317
            $this->index_exists($table_name, $index_name))
318
        {
319
            $sql  = 'ALTER TABLE `'.$table_name.'` ';
320
            $sql .= 'DROP INDEX `'.$index_name.'`';
321
            if( !$this->query($sql, $this->_db_handle)) { return false; }
322
        }
323
        $sql  = 'ALTER TABLE `'.$table_name.'` ';
324
        $sql .= 'ADD '.$index_type.' ';
325
        $sql .= $index_type == 'PRIMARY' ? 'KEY ' : '`'.$index_name.'` ';
326
        $sql .= '( '.$field_list.' ); ';
327
        if( $this->query($sql, $this->_db_handle)) { $retval = true; }
328
        return $retval;
329
    }
328 330

  
329 331
/*
330 332
 * @param string $table_name: full name of the table (incl. TABLE_PREFIX)
......
341 343
		}
342 344
		return $retval;
343 345
	}
346

  
344 347
/**
345 348
 * Import a standard *.sql dump file
346 349
 * @param string $sSqlDump link to the sql-dumpfile
......
419 422
		$this->error = mysql_error($this->_db_handle);
420 423
		return $this->result;
421 424
	}
422
	
425

  
423 426
	// Fetch num rows
424 427
	function numRows() {
425 428
		return mysql_num_rows($this->result);
......
452 455
	}
453 456

  
454 457
}
458

  
455 459
/* this function is placed inside this file temporarely until a better place is found */
456 460
/*  function to update a var/value-pair(s) in table ****************************
457 461
 *  nonexisting keys are inserted

Also available in: Unified diff