diff options
author | robocoder <anthon.pang@gmail.com> | 2009-09-18 03:29:27 +0400 |
---|---|---|
committer | robocoder <anthon.pang@gmail.com> | 2009-09-18 03:29:27 +0400 |
commit | 0494a63c73790b3d62788e3f5f6eefca468ea22b (patch) | |
tree | 471116a26dd71c2a0208dddb94e6fc2931f73318 /core/Updater.php | |
parent | fd16c9ce87e010d1e5652c362e23ae05b41fd854 (diff) |
fixes #904 - MySQL error codes; unsupported adapters can map these to driver-specific SQLSTATE (see example)
fixes #980 - Piwik Installation support for "MySQL Improved" (mysqli) extension
fixes #984 - Set client connection charset to utf8.
Fixed tracker profiling data not recorded until after report generated.
More refactoring and database abstraction:
- Installation gets a list of adapters instead of hardcoding in the plugin
- checking for database-specific system requirements deferred to the adapter
- error detection moved to adapter but we still use MySQL error codes rather than defining new constants
Note: unit tests don't run with MYSQLI -- Zend Framework's Mysqli adapater doesn't support prepare() yet
git-svn-id: http://dev.piwik.org/svn/trunk@1473 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'core/Updater.php')
-rw-r--r-- | core/Updater.php | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/core/Updater.php b/core/Updater.php index a7647cb838..b5f6aa990b 100644 --- a/core/Updater.php +++ b/core/Updater.php @@ -192,7 +192,8 @@ class Piwik_Updater try { $currentVersion = Piwik_GetOption('version_'.$name); } catch( Exception $e) { - if(preg_match('/1146/', $e->getMessage())) + // mysql error 1146: table doesn't exist + if(Zend_Registry::get('db')->isErrNo('1146')) { // case when the option table is not yet created (before 0.2.10) $currentVersion = false; @@ -245,7 +246,7 @@ class Piwik_Updater try { Piwik_Query( $update ); } catch(Exception $e) { - if(($ignoreError === false) || !preg_match($ignoreError, $e->getMessage())) + if(($ignoreError === false) || !Zend_Registry::get('db')->isErrNo($ignoreError)) { $message = $file .":\nError trying to execute the query '". $update ."'.\nThe error was: ". $e->getMessage(); throw new Piwik_Updater_UpdateErrorException($message); |