dblayer : Move unique fields in each SQL engine
bug dblayer : table name was alwas 'table' (missing $) adding quotes arround unique fields to support spaces git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@1438 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
65
dblayer.php
65
dblayer.php
@@ -454,7 +454,7 @@ class dblayer extends PDO
|
|||||||
switch ($this->db->getAttribute(PDO::ATTR_DRIVER_NAME))
|
switch ($this->db->getAttribute(PDO::ATTR_DRIVER_NAME))
|
||||||
{
|
{
|
||||||
case "sqlite":
|
case "sqlite":
|
||||||
$sql = "CREATE TABLE `table` (\n";
|
$sql = "CREATE TABLE `$table` (\n";
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($fields as $field=>$params)
|
foreach ($fields as $field=>$params)
|
||||||
{
|
{
|
||||||
@@ -504,9 +504,24 @@ class dblayer extends PDO
|
|||||||
}
|
}
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
// Unique fields
|
||||||
|
if ($unique !== null)
|
||||||
|
{
|
||||||
|
foreach ($unique as $u)
|
||||||
|
{
|
||||||
|
$sql .= ",\n UNIQUE (`";
|
||||||
|
if (is_array ($u))
|
||||||
|
$sql .=implode ("`,`", $u);
|
||||||
|
else
|
||||||
|
$sql .= $u;
|
||||||
|
$sql .="`)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO : Foreign keys
|
||||||
|
$sql .=")";
|
||||||
break;
|
break;
|
||||||
case "mysql":
|
case "mysql":
|
||||||
$sql = "CREATE TABLE `table` (\n";
|
$sql = "CREATE TABLE `$table` (\n";
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($fields as $field=>$params)
|
foreach ($fields as $field=>$params)
|
||||||
{
|
{
|
||||||
@@ -556,9 +571,24 @@ class dblayer extends PDO
|
|||||||
}
|
}
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
// Unique fields
|
||||||
|
if ($unique !== null)
|
||||||
|
{
|
||||||
|
foreach ($unique as $u)
|
||||||
|
{
|
||||||
|
$sql .= ",\n UNIQUE (`";
|
||||||
|
if (is_array ($u))
|
||||||
|
$sql .=implode ("`,`", $u);
|
||||||
|
else
|
||||||
|
$sql .= $u;
|
||||||
|
$sql .="`)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO : Foreign keys
|
||||||
|
$sql .=")";
|
||||||
break;
|
break;
|
||||||
case "pgsql":
|
case "pgsql":
|
||||||
$sql = "CREATE TABLE \"table\" (\n";
|
$sql = "CREATE TABLE \"$table\" (\n";
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($fields as $field=>$params)
|
foreach ($fields as $field=>$params)
|
||||||
{
|
{
|
||||||
@@ -612,25 +642,26 @@ class dblayer extends PDO
|
|||||||
}
|
}
|
||||||
$i ++;
|
$i ++;
|
||||||
}
|
}
|
||||||
|
// Unique fields
|
||||||
|
if ($unique !== null)
|
||||||
|
{
|
||||||
|
foreach ($unique as $u)
|
||||||
|
{
|
||||||
|
$sql .= ",\n UNIQUE (\"";
|
||||||
|
if (is_array ($u))
|
||||||
|
$sql .=implode ("\",\"", $u);
|
||||||
|
else
|
||||||
|
$sql .= $u;
|
||||||
|
$sql .="\")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO : Foreign keys
|
||||||
|
$sql .=")";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception (_("PDO Engine not supported in dbLayer", 500));
|
throw new Exception (_("PDO Engine not supported in dbLayer", 500));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unique fields
|
|
||||||
if ($unique !== null)
|
|
||||||
{
|
|
||||||
foreach ($unique as $u)
|
|
||||||
{
|
|
||||||
$sql .= ",\n UNIQUE (";
|
|
||||||
if (is_array ($u))
|
|
||||||
$sql .=implode (",", $u);
|
|
||||||
else
|
|
||||||
$sql .= $u;
|
|
||||||
$sql .=")";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$sql .=")";
|
|
||||||
echo "$sql\n";
|
echo "$sql\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user