commit dca6e8bda74676dd447ce1b7cc1d3b8ba9cae98d
parent a16d8b56bf5e0ee7edf5480241c133d90605cff5
Author: Jan Dankert <devnull@localhost>
Date: Thu, 6 Sep 2018 00:13:50 +0200
Beim Testen von Querys muss berücksichtigt werden, dass bereits beim Prepare der Anfragen eine Exception auftreten kann.
Diffstat:
2 files changed, 28 insertions(+), 25 deletions(-)
diff --git a/modules/database-update/DbUpdate.class.php b/modules/database-update/DbUpdate.class.php
@@ -65,12 +65,14 @@ class DbUpdate
}
-
-
+ /**
+ * Ermittelt die Version des Datenbank-Schemas.
+ * @param Database $db
+ * @return int
+ */
private function getDbVersion( Database $db )
{
- $sql = $db->sql('SELECT 1 FROM {{version}}',$db->id);
- $versionTableExists = $sql->testQuery();
+ $versionTableExists = $this->testQuery( $db,'SELECT 1 FROM {{version}}' );
if ( $versionTableExists )
{
@@ -99,8 +101,7 @@ SQL
}
else
{
- $sql = $db->sql('SELECT 1 FROM {{project}}',$db->id);
- $projectTableExists = $sql->testQuery();
+ $projectTableExists = $this->testQuery( $db,'SELECT 1 FROM {{project}}');
if ( $projectTableExists )
// Entspricht dem Stand vor Einführung der automatischen Migration.
@@ -110,6 +111,27 @@ SQL
return 0;
}
}
+
+
+ /**
+ * Stellt fest, ob eine DB-Anfrage funktioniert.
+ * @param $db Database
+ * @param $sql
+ * @return <code>true</code> falls SQL funktioniert.
+ */
+ private function testQuery( $db,$sql )
+ {
+ try {
+ $sql = $db->sql($sql,$db->id);
+ $sql->execute();
+ return true; // Bisher alles ok? Dann funktioniert die Query.
+ }
+ catch( Exception $e )
+ {
+ // Query funktioniert nicht.
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
diff --git a/modules/database/Statement.class.php b/modules/database/Statement.class.php
@@ -235,25 +235,6 @@ class Statement
}
- /**
- * Führt eine Query aus und gibt nur zurück, ob diese funktioniert.
- *
- * @return boolean
- */
- public function testQuery()
- {
- try
- {
- $result = $this->query();
- return $result;
- }
- catch( Exception $e )
- {
- return false;
- }
- }
-
-
/**
* Setzt eine Ganzzahl als Parameter.<br>
* @param $name string