Revision 1763
Added by Luisehahne over 12 years ago
- fixed methode index_add in WbDatabase, always faild
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