From 2f0abcd139087eef341d65ae92ddbe932bc1275a Mon Sep 17 00:00:00 2001 From: Dominique Fournier Date: Thu, 27 Apr 2017 12:41:15 +0000 Subject: [PATCH] dblayeroo: add tinyint field type dblayeroo: Do not allow autoincrement if the field is not integer git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3551 bf3deb0d-5f1a-0410-827f-c0cc1f45334c --- dblayeroo.php | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) 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;