]> source.dussan.org Git - nextcloud-server.git/commitdiff
make logs work with sqlite
authorRobin Appelman <icewind1991@gmail.com>
Thu, 28 Apr 2011 15:40:51 +0000 (17:40 +0200)
committerRobin Appelman <icewind1991@gmail.com>
Thu, 28 Apr 2011 15:40:51 +0000 (17:40 +0200)
lib/database.php
lib/log.php

index 3c2480c8b6defb54be532ae4b417b1737c09569b..728e73590407416e3d0586b8937c312ec319d064 100644 (file)
@@ -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;
index f5651514108205c823953d57828eb052d5649879..02ad8162d5105fead1ca3425151d0ac3af687811 100644 (file)
@@ -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;
                
        }