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
This commit is contained in:
2017-04-27 12:41:15 +00:00
parent 39d34965c0
commit 2f0abcd139

View File

@@ -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;