- Umstellung auf Mysql InnoDB
- Umstellung auf Autoincrement
- Entfernen von adodb light
Man mache sich mal den Spaß, nehme eine Cmsms 2.1 und rund 4 Stunden Zeit und dazu ein ganz billiges , schnell hin gekritzeltes DB Script mit dem man aber alles machen kann was die datentechnisch very simple aufgebaute CMS benötigt.
Das Script selbst ist ein Lacher aber es funktioniert.
,
In den rund 4 Stunden muss die DB Nutzung in allen Scripten angepasst werden wie auch der Teil der für eine neue Insert ID zuständig sind - das ist eine reine Fleißarbeit.
Das Script für die DB:
$dbconnection = null;
CONST DBDEF = array(
'user' => "root",
'pwd' => "1030410",
'db' => 'cmsms',
'host' => "localhost",
'port' => null,
'chset' => "utf8"
);
function Connect(&$db, $host = null, $user = null, $password = null, $database = null, $port = null, $nodie = true) {
$host = ( empty($host) ? DBDEF['host'] : $host);
$user = ( empty($user) ? DBDEF['user'] : $user);
$password = ( empty($password) ? DBDEF['pwd'] : $password);
$database = ( empty($database) ? DBDEF['db'] : $database);
$port = ( empty($port) ? DBDEF['port'] : $port);
if ($db == null) {
if (isset($port)) {
$db = @mysqli_connect($host, $user, $password, '', (int) $port);
} else {
$db = @mysqli_connect($host, $user, $password);
}
if (!is_object($db) && !$nodie) {
$err_msg = 'Cannot connect to the database because: ' . mysqli_connect_error();
die($err_msg);
exit();
} elseif (!is_object($db)) {
$err_msg = 'Cannot connect to the database because: ' . mysqli_connect_error();
echo($err_msg);
exit();
}
if (is_object($db) && $database !== null) {
$res = mysqli_select_db($db, $database);
if (!$res) {
$err_msg = 'Cannot select db because:' . mysqli_error($db);
if (!$nodie)
die($err_msg);
}
if ($db && DBDEF['chset'] <> '') {
$r = Execute($db, 'SET CHARACTER SET ' . DBDEF['chset']);
}
}
}
}
function Execute(&$db, $sql) {
if ($sql == '') {
return false;
} else {
return mysqli_query($db, $sql);
}
}
function GetArray(&$db, $sql, &$rset) {
$data = false;
$result = Execute($db, $sql);
if ($result) {
$rset['lasterror'] = mysqli_errno($db);
$rset['lasterrortext'] = mysqli_error($db);
if (preg_match("/^(insert|delete|update|replace)\s+/i", $sql)) {
$rset['rows_affected'] = mysqli_affected_rows($db);
} elseif (preg_match("/^(select|explain|show|describe)\s+/i", $sql)) {
$rset['num_rows'] = mysqli_num_rows($result);
$rset['num_fields'] = mysqli_num_fields($result);
if ($rset['num_rows'] > 0) {
$data = array();
while ($row = mysqli_fetch_assoc($result)) {
$data[] = $row;
}
}
}
}
return $data;
}
// Test
$rset = array();
Connect($dbconnection);
$r = GetArray($dbconnection, 'SHOW TABLES;', $rset);
print_r($r);
Natürlich kann man das Script noch mit allen Schickimickis aufrüsten wie Backup, Restore und solch Zeugs - wenn man es will - wird aber zum Betrieb von Cmsms nicht benötigt.
Keine Kommentare:
Kommentar veröffentlichen