<?php
/*
Bluetrait 2.0 Database Specific Functions
Michael Dale Copyright 2007
*/
function bt_is_installed() {
global $bt_db, $bt_tb, $bt_db_type;
switch ($bt_db_type) {
case 'postgresql':
$stmt = $bt_db->prepare("SELECT table_name FROM information_schema.tables WHERE table_schema = '$bt_tb->site'");
break;
case 'sqlite':
$stmt = $bt_db->prepare("SELECT * FROM SQLITE_MASTER WHERE tbl_name='$bt_tb->site'");
break;
//mysql
default:
$stmt = $bt_db->prepare("SHOW TABLES LIKE '$bt_tb->site'");
}
try {
$stmt->execute();
}
catch (Exception $e) {
bt_die($e->getMessage());
}
$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!isset($array[0])) return false;
return true;
}
function bt_optimise_tables() {
global $bt_db, $bt_tb, $bt_db_type;
switch ($bt_db_type) {
case 'mysql':
$optimise_tables = '';
foreach ($bt_tb->tables as $value => $index) {
$optimise_tables .= $index . ',';
}
$optimise_tables = substr($optimise_tables, 0, strlen($optimise_tables) - 1);
$query = 'OPTIMIZE TABLE ' . $optimise_tables;
trigger_error('Optimising Tables', E_USER_NOTICE);
foreach ($bt_db->query($query, PDO::FETCH_ASSOC) as $row) {
if ($row['Msg_type'] == 'error') {
$type = E_USER_WARNING;
}
else {
$type = E_USER_NOTICE;
}
trigger_error('Table "' . bt_htmlentities($row['Table']) . '"<br />Message "' . bt_htmlentities($row['Msg_text']) . '"', $type);
}
trigger_error('Optimised Tables', E_USER_NOTICE);
break;
case 'sqlite':
break;
case 'postgresql':
break;
}
}
function bt_repair_tables() {
global $bt_db, $bt_tb, $bt_db_type;
switch ($bt_db_type) {
case 'mysql':
$repair_tables = '';
foreach ($bt_tb->tables as $value => $index) {
$repair_tables .= $index . ',';
}
$repair_tables = substr($repair_tables, 0, strlen($repair_tables) - 1);
$query = 'REPAIR TABLE ' . $repair_tables;
trigger_error('Repairing Tables', E_USER_NOTICE);
foreach ($bt_db->query($query, PDO::FETCH_ASSOC) as $row) {
if ($row['Msg_type'] == 'error') {
$type = E_USER_WARNING;
}
else {
$type = E_USER_NOTICE;
}
trigger_error('Table "' . bt_htmlentities($row['Table']) . '"<br />Message "' . bt_htmlentities($row['Msg_text']) . '"', $type);
}
trigger_error('Repaired Tables', E_USER_NOTICE);
break;
case 'sqlite':
break;
case 'postgresql':
break;
}
}
?>
|