Merge pull request #3982 from owncloud/test_lastinsertid
test lastinsertid
This commit is contained in:
commit
50101a85a6
|
@ -344,7 +344,7 @@ class OC_DB {
|
||||||
$result = self::executeAudited('SELECT lastval() AS id');
|
$result = self::executeAudited('SELECT lastval() AS id');
|
||||||
$row = $result->fetchRow();
|
$row = $result->fetchRow();
|
||||||
self::raiseExceptionOnError($row, 'fetching row for insertid failed');
|
self::raiseExceptionOnError($row, 'fetching row for insertid failed');
|
||||||
return $row['id'];
|
return (int)$row['id'];
|
||||||
} else if( $type === 'mssql') {
|
} else if( $type === 'mssql') {
|
||||||
if($table !== null) {
|
if($table !== null) {
|
||||||
$prefix = OC_Config::getValue( "dbtableprefix", "oc_" );
|
$prefix = OC_Config::getValue( "dbtableprefix", "oc_" );
|
||||||
|
@ -368,7 +368,7 @@ class OC_DB {
|
||||||
$result = self::$connection->lastInsertId($table);
|
$result = self::$connection->lastInsertId($table);
|
||||||
}
|
}
|
||||||
self::raiseExceptionOnError($result, 'insertid failed');
|
self::raiseExceptionOnError($result, 'insertid failed');
|
||||||
return $result;
|
return (int)$result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -71,7 +71,21 @@ class Test_DB extends PHPUnit_Framework_TestCase {
|
||||||
$result = $query->execute(array('uri_3'));
|
$result = $query->execute(array('uri_3'));
|
||||||
$this->assertTrue((bool)$result);
|
$this->assertTrue((bool)$result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testLastInsertId() {
|
||||||
|
$query = OC_DB::prepare('INSERT INTO `*PREFIX*'.$this->table2.'` (`fullname`,`uri`) VALUES (?,?)');
|
||||||
|
$result1 = OC_DB::executeAudited($query, array('insertid 1','uri_1'));
|
||||||
|
$id1 = OC_DB::insertid('*PREFIX*'.$this->table2);
|
||||||
|
$this->assertInternalType('int', $id1);
|
||||||
|
|
||||||
|
// we don't know the id we should expect, so insert another row
|
||||||
|
$result2 = OC_DB::executeAudited($query, array('insertid 2','uri_2'));
|
||||||
|
$id2 = OC_DB::insertid('*PREFIX*'.$this->table2);
|
||||||
|
// now we can check if the two ids are in correct order
|
||||||
|
$this->assertInternalType('int', $id2);
|
||||||
|
$this->assertGreaterThan($id1, $id2);
|
||||||
|
}
|
||||||
|
|
||||||
public function testinsertIfNotExist() {
|
public function testinsertIfNotExist() {
|
||||||
$categoryentries = array(
|
$categoryentries = array(
|
||||||
array('user' => 'test', 'type' => 'contact', 'category' => 'Family', 'expectedResult' => 1),
|
array('user' => 'test', 'type' => 'contact', 'category' => 'Family', 'expectedResult' => 1),
|
||||||
|
|
Loading…
Reference in New Issue