Merge pull request #3652 from owncloud/fix_fetchrow_usage_for_mdb2

fix fetchRow checks to also work with MDB2
This commit is contained in:
Jörn Friedrich Dreyer 2013-06-11 06:20:27 -07:00
commit 0eed1c980d
2 changed files with 9 additions and 3 deletions

View File

@ -96,7 +96,7 @@ class Cache {
* get the stored metadata of a file or folder
*
* @param string/int $file
* @return array
* @return array | false
*/
public function get($file) {
if (is_string($file) or $file == '') {
@ -115,6 +115,12 @@ class Cache {
$result = $query->execute($params);
$data = $result->fetchRow();
//FIXME hide this HACK in the next database layer, or just use doctrine and get rid of MDB2 and PDO
//PDO returns false, MDB2 returns null, oracle always uses MDB2, so convert null to false
if ($data === null) {
$data = false;
}
//merge partial data
if (!$data and is_string($file)) {
if (isset($this->partial[$file])) {

View File

@ -37,7 +37,7 @@ class Test_DB extends PHPUnit_Framework_TestCase {
$result = $query->execute(array('uri_1'));
$this->assertTrue((bool)$result);
$row = $result->fetchRow();
$this->assertFalse($row);
$this->assertFalse((bool)$row); //PDO returns false, MDB2 returns null
$query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`,`uri`) VALUES (?,?)');
$result = $query->execute(array('fullname test', 'uri_1'));
$this->assertTrue((bool)$result);
@ -48,7 +48,7 @@ class Test_DB extends PHPUnit_Framework_TestCase {
$this->assertArrayHasKey('fullname', $row);
$this->assertEquals($row['fullname'], 'fullname test');
$row = $result->fetchRow();
$this->assertFalse($row);
$this->assertFalse((bool)$row); //PDO returns false, MDB2 returns null
}
/**