Mercurial > hg > fapweb
diff msitegen.inc.php @ 577:ba521a7e7653
Move two DB helper functions from managedb to msitegen module.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 01 Oct 2014 11:31:47 +0300 |
parents | 1ec34a220df3 |
children | 4227095a1384 |
line wrap: on
line diff
--- a/msitegen.inc.php Wed Oct 01 11:28:23 2014 +0300 +++ b/msitegen.inc.php Wed Oct 01 11:31:47 2014 +0300 @@ -642,6 +642,60 @@ } +function stDBGetTableSchema($dbh, $data) +{ + $res = array(); + $driver = $dbh->getAttribute(PDO::ATTR_DRIVER_NAME); + + foreach ($data as $col) + { + $tmp = array(); + + switch ($driver) + { + case "pgsql": + foreach ($col as $elem) + { + // For Postgres, use SERIAL for autoincrement + if ($elem == "AUTOINCREMENT") + $tmp[1] = "SERIAL"; + else + $tmp[] = $elem; + } + break; + + case "mysql": + foreach ($col as $elem) + { + if ($elem != "AUTOINCREMENT") + $tmp[] = "AUTO_INCREMENT"; + else + $tmp[] = $elem; + } + break; + + case "sqlite": + $tmp = $col; + break; + + default: + die("Don't know how to handle PDO driver '".$driver."' yet.\n"); + } + + $res[] = implode(" ", $tmp); + } + + return implode(", ", $res); +} + + +function stDBCreateOneTable($dbh, $name, $schema) +{ +// echo "CREATE TABLE ".$name ." (".$schema.")\n"; + return (stDBExecSQL($dbh, "CREATE TABLE ".$name." (".$schema.")") !== FALSE) ? TRUE : FALSE; +} + + function stStrChop($str, $len) { return (mb_strlen($str) > $len) ? mb_substr($str, 0, $len - 3)."..." : $str;