diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-04-28 17:40:51 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-04-28 17:40:51 +0200 |
commit | 3e99aefb7ebdb115794ec7d25b2e73db504252ff (patch) | |
tree | b55ff6d86734035378b51b990823dfdd36b79898 | |
parent | 91743514120d276ab7c1f0774c441ffd174bb11d (diff) | |
download | nextcloud-server-3e99aefb7ebdb115794ec7d25b2e73db504252ff.tar.gz nextcloud-server-3e99aefb7ebdb115794ec7d25b2e73db504252ff.zip |
make logs work with sqlite
-rw-r--r-- | lib/database.php | 10 | ||||
-rw-r--r-- | lib/log.php | 17 |
2 files changed, 23 insertions, 4 deletions
diff --git a/lib/database.php b/lib/database.php index 3c2480c8b6d..728e7359040 100644 --- a/lib/database.php +++ b/lib/database.php @@ -300,7 +300,13 @@ class OC_DB { // We need Database type and table prefix $CONFIG_DBTYPE = OC_CONFIG::getValue( "dbtype", "sqlite" ); $CONFIG_DBTABLEPREFIX = OC_CONFIG::getValue( "dbtableprefix", "oc_" ); - + + // differences is getting the current timestamp + if( $CONFIG_DBTYPE == 'sqlite' ){ + $query = str_replace( 'NOW()', "strftime('%s', 'now')", $query ); + $query = str_replace( 'now()', "strftime('%s', 'now')", $query ); + } + // differences in escaping of table names (` for mysql) // Problem: what if there is a ` in the value we want to insert? if( $CONFIG_DBTYPE == 'sqlite' ){ @@ -310,7 +316,7 @@ class OC_DB { $query = str_replace( '`', '"', $query ); } - // replace table names + // replace table name prefix $query = str_replace( '*PREFIX*', $CONFIG_DBTABLEPREFIX, $query ); return $query; diff --git a/lib/log.php b/lib/log.php index f5651514108..02ad8162d51 100644 --- a/lib/log.php +++ b/lib/log.php @@ -52,7 +52,14 @@ class OC_LOG { */ public static function add( $appid, $subject, $predicate, $object = ' ' ){ $query=OC_DB::prepare("INSERT INTO *PREFIX*log(`timestamp`,appid,user,action,info) VALUES(NOW(),?,?,?,?)"); - $query->execute(array($appid,$subject,$predicate,$object)); + $result=$query->execute(array($appid,$subject,$predicate,$object)); + // Die if we have an error + if( PEAR::isError($result)) { + $entry = 'DB Error: "'.$result->getMessage().'"<br />'; + $entry .= 'Offending command was: '.$query.'<br />'; + error_log( $entry ); + die( $entry ); + } return true; } @@ -91,7 +98,13 @@ class OC_LOG { array_push($params,$filter('app')); } $query=OC_DB::prepare($queryString); - return $query->execute($params)->fetchAll(); + $result=$query->execute($params)->fetchAll(); + if(count($result)>0 and is_numeric($result[0]['timestamp'])){ + foreach($result as &$row){ + $row['timestamp']=OC_UTIL::formatDate($row['timestamp']); + } + } + return $result; } |