openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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:
modules/database-update/DbUpdate.class.php | 34++++++++++++++++++++++++++++------
modules/database/Statement.class.php | 19-------------------
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