dblayer : add more unittests
dblayer : add compatibility in column names with MySQL and SQLite git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@1812 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
@@ -33,9 +33,16 @@ class test_dblayer_{ENGINE} extends PHPUnit_Framework_TestCase
|
|||||||
$db = new dblayer ($dbconfig["dsn"], $dbconfig["username"],
|
$db = new dblayer ($dbconfig["dsn"], $dbconfig["username"],
|
||||||
$dbconfig["password"], $dbconfig["driver_options"]);
|
$dbconfig["password"], $dbconfig["driver_options"]);
|
||||||
$db->table = "grouped";
|
$db->table = "grouped";
|
||||||
$this->setExpectedException ("Exception");
|
try
|
||||||
|
{
|
||||||
$res = $db->dropTable();
|
$res = $db->dropTable();
|
||||||
// Never generate an error
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
// Never generate an error, just drop the table if it exists, and do noting
|
||||||
|
// if it doesn't exists
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_createTable ()
|
public function test_createTable ()
|
||||||
@@ -68,7 +75,8 @@ class test_dblayer_{ENGINE} extends PHPUnit_Framework_TestCase
|
|||||||
"object"=>"/éobj%",
|
"object"=>"/éobj%",
|
||||||
"where"=>"\$'\"",
|
"where"=>"\$'\"",
|
||||||
"with space"=>"with space"));
|
"with space"=>"with space"));
|
||||||
$this->assertSame ("1", $res);
|
// SQLite start at 1, MySQL start at 0...
|
||||||
|
$this->assertThat($res, $this->lessThanOrEqual(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function test_read1 ()
|
public function test_read1 ()
|
||||||
|
|||||||
16
dblayer.php
16
dblayer.php
@@ -433,9 +433,9 @@ class dblayer extends PDO
|
|||||||
$display = array_keys ($this->fields);
|
$display = array_keys ($this->fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
$req = "SELECT \"";
|
$req = "SELECT `";
|
||||||
$req .= implode ("\",\"", $display);
|
$req .= implode ("`,`", $display);
|
||||||
$req .= "\" FROM `$this->tableprefix$this->table`";
|
$req .= "` FROM `$this->tableprefix$this->table`";
|
||||||
if ($select !== null)
|
if ($select !== null)
|
||||||
{
|
{
|
||||||
$req .= " WHERE ";
|
$req .= " WHERE ";
|
||||||
@@ -457,7 +457,7 @@ class dblayer extends PDO
|
|||||||
// name is 'group'
|
// name is 'group'
|
||||||
// Don't put single quotes : don't work with SQLite
|
// Don't put single quotes : don't work with SQLite
|
||||||
// TODO : Test for PostgreSQL (Tested for SQLite and MySQL)
|
// TODO : Test for PostgreSQL (Tested for SQLite and MySQL)
|
||||||
$req .= " \"".$s[0]."\" ".$s[2]." :".md5 ($s[0]);
|
$req .= " `".$s[0]."` ".$s[2]." :".md5 ($s[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -661,8 +661,8 @@ class dblayer extends PDO
|
|||||||
continue;
|
continue;
|
||||||
$table = $data[0];
|
$table = $data[0];
|
||||||
$column = $data[1];
|
$column = $data[1];
|
||||||
$req = "SELECT $column FROM `$this->tableprefix$table` ".
|
$req = "SELECT `$column` FROM `$this->tableprefix$table` ".
|
||||||
"WHERE \"$column\"=:".md5 ($column);
|
"WHERE `$column`=:".md5 ($column);
|
||||||
if ($this->debug) echo "DEBUG : $req\n";
|
if ($this->debug) echo "DEBUG : $req\n";
|
||||||
$st = $this->db->prepare ($req);
|
$st = $this->db->prepare ($req);
|
||||||
$val = $datasOK[$foreign];
|
$val = $datasOK[$foreign];
|
||||||
@@ -698,11 +698,11 @@ class dblayer extends PDO
|
|||||||
foreach ($datasOK as $key=>$val)
|
foreach ($datasOK as $key=>$val)
|
||||||
{
|
{
|
||||||
if ($i>0) $req .= ",";
|
if ($i>0) $req .= ",";
|
||||||
$req .= "\"$key\"=:".md5 ($key);
|
$req .= "`$key`=:".md5 ($key);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$req .= " WHERE \"$this->primary\"=:".md5 ($this->primary);
|
$req .= " WHERE `$this->primary`=:".md5 ($this->primary);
|
||||||
if ($this->debug) echo "DEBUG : $req\n";
|
if ($this->debug) echo "DEBUG : $req\n";
|
||||||
$st = $this->db->prepare ($req);
|
$st = $this->db->prepare ($req);
|
||||||
foreach ($datasOK as $key=>$val)
|
foreach ($datasOK as $key=>$val)
|
||||||
|
|||||||
Reference in New Issue
Block a user