" "mein="" username",="" "displayname"=">" "tug",="" "filename"=">" "https:="" online.tugraz.at="" tug_onlinej="" ws="" termin="" ical?pstud="restvomlink"" ),="" );="" foreach($import="" as="" $cal)="" {="" nachsehen="" ob="" der="" kalender="" auf="" owncloud="" auch="" existiert="" try="" $stmt="OCP\DB::prepare(" 'select="" *="" from="" `*prefix*clndr_calendars`="" where="" `userid`="?" and="" `displayname`="?'" $result="$stmt->execute(array($cal["userid"]," $cal["displayname"]));="" $row="$result->fetchRow();" $calendar_id="$row['id'];" if="" (!$calendar_id)="" echo="" "no="" calendar="" for="" userid="" "="" .="" $cal["userid"]="" with="" displayname="" '"="" $cal["displayname"]="" "'";="" }="" catch="" (exception="" $e)="" "db="" exception:="" $e;="" daten="" aus="" dem="" feed="" laden="" $file="file_get_contents($cal["filename"]);" ($file="==" false)="" "couldn't="" read="" file:="" ".$cal["filename"];="" import="" durchführen="" $import="new" oc_calendar_import($file);="" $import->setuserid($cal["userid"]);="" $import->settimezone(oc_calendar_app::$tz);="" $import->setcalendarid($calendar_id);="" $import->setoverwrite(true);="" oc_user::setuserid($cal["userid"]);="" $import->import();="" $count="$import->getCount();" "imported="" ".$count."="" objects="" in="" ".$cal["displayname"]."(".$cal["userid"].")\n";="" "import="" failed:="" ?>="" code="" wird="" mit="" cron="" alle="" 20min="" ausgefährt.="" leider="" wirft="" mir="" ca="" 3="" 4="" fälle="" folgenden="" fehler:="" code:import="" exception="" 'pdoexception'="" message="" 'sqlstate[hy000]:="" general="" error:="" 5="" database="" is="" locked'="" var="" www="" html="" 3rdparty="" doctrine="" dbal="" lib="" statement.php:138="" stack="" trace:="" #0="" statement.php(138):="" pdostatement->execute(array)="" #1="" private="" db="" statementwrapper.php(63):="" doctrine\dbal\statement->execute(array)="" #2="" apps="" object.php(285):="" oc_db_statementwrapper->execute(array)="" #3="" import.php(119):="" oc_calendar_object::delete('287')="" #4="" storage="" icalfeedimport.php(60):="" oc_calendar_import->import()="" #5="" {main}="" next="" 'doctrine\dbal\dbalexception'="" 'an="" occurred="" while="" executing="" 'delete="" "oc_clndr_objects"="" "id"="?':" sqlstate[hy000]:="" dbalexception.php:47="" statement.php(140):="" doctrine\dbal\dbalexception::driverexceptionduringquery(object(pdoexception),="" "oc...',="" array)="" dadurch="" kommt="" es="" manchmal="" vor,="" dass="" viele="" termine="" (owncloud)="" gelöscht="" werden.="" ich="" habe="" schon="" einen="" kommentar="" seite="" hinterlassen,="" wartet="" aber="" seit="" fast="" 10="" tagen="" freischaltung.="" weis="" vielleicht="" einer="" von="" euch="" wie="" das="" problem="" zu="" lösen="" wäre?"="">
URL: https://www.overclockers.at/coding-stuff/php-hilfe-beim-debuggen_240739/page_1 - zur Vollversion wechseln!
um meinen unikalender in meiner owncloud aktuell zu halten, benutze ich ein skript von dieser quelle:
Code: PHP<?php //Hier den Pfad zur Owncloud-Installation einfügen define('OWNCLOUD_DIR', '/var/www/html/owncloud'); require_once(OWNCLOUD_DIR . '/lib/base.php'); require_once(OWNCLOUD_DIR . '/apps/calendar/lib/import.php'); require_once(OWNCLOUD_DIR . '/apps/calendar/lib/object.php'); require_once(OWNCLOUD_DIR . '/apps/calendar/lib/calendar.php'); require_once(OWNCLOUD_DIR . '/apps/calendar/lib/app.php'); /* * Hier die verschiedenen zu importierenden Feeds eintragen * userid: Der Benutzername auf dessen Konto der Kalender importiert werden soll * displayname: Der Name des Kalenders in der Owncloud (muss vorher angelegt werden) * filename: Die URL zum ICAL-Feed */ $Import = array( //TUG Kalender array( "userid" => "mein username", "displayname" => "TUG", "filename" => "https://online.tugraz.at/tug_onlinej/ws/termin/ical?pStud=restvomlink" ), ); foreach($Import AS $cal) { //Nachsehen ob der Kalender auf der Owncloud auch existiert try { $stmt = OCP\DB::prepare( 'SELECT * FROM `*PREFIX*clndr_calendars` WHERE `userid` = ? AND `displayname` = ?' ); $result = $stmt->execute(array($cal["userid"], $cal["displayname"])); $row = $result->fetchRow(); $calendar_id = $row['id']; if (!$calendar_id) { echo "No calendar for userid " . $cal["userid"] . " with displayname '" . $cal["displayname"] . "'"; } } catch (Exception $e) { echo "DB exception: " . $e; } // Daten aus dem Feed laden $file = file_get_contents($cal["filename"]); if ($file === FALSE) { echo "Couldn't read file: ".$cal["filename"]; } //Import durchführen $import = new OC_Calendar_Import($file); $import->setUserID($cal["userid"]); $import->setTimeZone(OC_Calendar_App::$tz); $import->setCalendarID($calendar_id); $import->setOverwrite(true); OC_User::setUserId($cal["userid"]); try { $import->import(); $count = $import->getCount(); echo "Imported ".$count." objects in Calendar ".$cal["displayname"]."(".$cal["userid"].")\n"; } catch (Exception $e) { echo "Import failed: " . $e; } } ?>
Code:Import failed: exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 5 database is locked' in /var/www/html/owncloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php:138 Stack trace: #0 /var/www/html/owncloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(138): PDOStatement->execute(Array) #1 /var/www/html/owncloud/lib/private/db/statementwrapper.php(63): Doctrine\DBAL\Statement->execute(Array) #2 /var/www/html/owncloud/apps/calendar/lib/object.php(285): OC_DB_StatementWrapper->execute(Array) #3 /var/www/html/owncloud/apps/calendar/lib/import.php(119): OC_Calendar_Object::delete('287') #4 /storage/owncloud/icalFeedImport.php(60): OC_Calendar_Import->import() #5 {main} Next exception 'Doctrine\DBAL\DBALException' with message 'An exception occurred while executing 'DELETE FROM "oc_clndr_objects" WHERE "id" = ?': SQLSTATE[HY000]: General error: 5 database is locked' in /var/www/html/owncloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:47 Stack trace: #0 /var/www/html/owncloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php(140): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(PDOException), 'DELETE FROM "oc...', Array) #1 /var/www/html/owncloud/lib/private/db/statementwrapper.php(63): Doctrine\DBAL\Statement->execute(Array) #2 /var/www/html/owncloud/apps/calendar/lib/object.php(285): OC_DB_StatementWrapper->execute(Array) #3 /var/www/html/owncloud/apps/calendar/lib/import.php(119): OC_Calendar_Object::delete('287') #4 /storage/owncloud/icalFeedImport.php(60): OC_Calendar_Import->import() #5 {main}
Welche DB? Für mich klingt das nach einem DB-Problem.
edit: Google bietet viele Hits, wenn man nach dem Fehler (SQLSTATE[HY000]: General error: 5 database is locked) sucht.
Das liegt daran, dass gerade eine Doctrine-Transaction offen ist.
Am einfachsten wird es sein, den Doctrine-Querybuilder einzubinden und die Statements dann über diesen (mit Transaktion) laufen zu lassen.
danke für den tipp.Zitat von ObermotzDas liegt daran, dass gerade eine Doctrine-Transaction offen ist.
Am einfachsten wird es sein, den Doctrine-Querybuilder einzubinden und die Statements dann über diesen (mit Transaktion) laufen zu lassen.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025