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;