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:
2014-06-12 12:00:52 +00:00
parent a1122a716c
commit 1d1e0cb0b6

View File

@@ -454,7 +454,7 @@ class dblayer extends PDO
switch ($this->db->getAttribute(PDO::ATTR_DRIVER_NAME))
{
case "sqlite":
$sql = "CREATE TABLE `table` (\n";
$sql = "CREATE TABLE `$table` (\n";
$i = 0;
foreach ($fields as $field=>$params)
{
@@ -504,9 +504,24 @@ class dblayer extends PDO
}
$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;
case "mysql":
$sql = "CREATE TABLE `table` (\n";
$sql = "CREATE TABLE `$table` (\n";
$i = 0;
foreach ($fields as $field=>$params)
{
@@ -556,9 +571,24 @@ class dblayer extends PDO
}
$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;
case "pgsql":
$sql = "CREATE TABLE \"table\" (\n";
$sql = "CREATE TABLE \"$table\" (\n";
$i = 0;
foreach ($fields as $field=>$params)
{
@@ -612,25 +642,26 @@ class dblayer extends PDO
}
$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;
default:
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";
}