diff --git a/dblayeroo.php b/dblayeroo.php index 2ee6cc9..93a87bb 100644 --- a/dblayeroo.php +++ b/dblayeroo.php @@ -304,15 +304,6 @@ class dblayeroo $sql .= "$this->sep$field$this->sep "; switch ($this->fieldTypeLight ($field)) { - case "integer": - $sql .= "INTEGER"; - $params = array_slice ($params, 1); - break; - case "varchar": - $length = $this->fieldLength ($field); - $sql .= "VARCHAR($length)"; - $params = array_slice ($params, 1); - break; case "datetime": $sql .= "DATETIME"; $params = array_slice ($params, 1); @@ -321,6 +312,19 @@ class dblayeroo $sql .= "DATE"; $params = array_slice ($params, 1); break; + case "integer": + $sql .= "INTEGER"; + $params = array_slice ($params, 1); + break; + case "tinyint": + $sql .= "TINYINT"; + $params = array_slice ($params, 1); + break; + case "varchar": + $length = $this->fieldLength ($field); + $sql .= "VARCHAR($length)"; + $params = array_slice ($params, 1); + break; default: throw new Exception (sprintf ( dgettext("domframework", @@ -959,7 +963,8 @@ class dblayeroo if (! array_key_exists (0, $params)) $this->DBException ("Parameter fields invalid: ". "No type of column provided for '$field'"); - if (preg_match ("#^(data|datetime|integer|time|varchar\(\d+\))$#i", + if (preg_match ("#^(date|datetime|integer|time|tinyint|". + "varchar\(\d+\))$#i", $params[0]) !== 1) $this->DBException ("Parameter fields invalid: ". "Unknown column type provided for '$field'"); @@ -971,6 +976,11 @@ class dblayeroo $params[2] !== "autoincrement") $this->DBException ("Parameter fields invalid: ". "Third parameter invalid for '$field'"); + if ($params[0] !== "integer" && ( + isset ($params[1]) && $params[1] === "autoincrement" || + isset ($params[2]) && $params[2] === "autoincrement")) + $this->DBException ("Parameter fields invalid: ". + "Field '$field' can not be autoincrement and not integer"); } $this->fields = $fields; return $this;