xref: /plugin/strata/driver/mysql.php (revision 5153720fcc1dd2b6e63035d45f7c2bc32e429371)
1*5153720fSfkaag71<?php
2*5153720fSfkaag71/**
3*5153720fSfkaag71 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
4*5153720fSfkaag71 * @author     Steven te Brinke <s.tebrinke@utwente.nl>
5*5153720fSfkaag71 */
6*5153720fSfkaag71// must be run within Dokuwiki
7*5153720fSfkaag71if(!defined('DOKU_INC')) die('Meh.');
8*5153720fSfkaag71
9*5153720fSfkaag71require_once(DOKU_PLUGIN.'strata/driver/driver.php');
10*5153720fSfkaag71
11*5153720fSfkaag71/**
12*5153720fSfkaag71 * The MySQL database driver.
13*5153720fSfkaag71 */
14*5153720fSfkaag71class plugin_strata_driver_mysql extends plugin_strata_driver {
15*5153720fSfkaag71
16*5153720fSfkaag71    public function castToNumber($val) {
17*5153720fSfkaag71        return "CAST($val AS DECIMAL)";
18*5153720fSfkaag71    }
19*5153720fSfkaag71
20*5153720fSfkaag71    public function ci($val='?') {
21*5153720fSfkaag71        return "$val COLLATE utf8mb4_unicode_ci";
22*5153720fSfkaag71    }
23*5153720fSfkaag71
24*5153720fSfkaag71    protected function initializeConnection() {
25*5153720fSfkaag71        $this->query('SET NAMES utf8mb4');
26*5153720fSfkaag71        $this->query("SET sql_mode = 'PIPES_AS_CONCAT'"); // Ensure that || works as string concatenation
27*5153720fSfkaag71    }
28*5153720fSfkaag71
29*5153720fSfkaag71    public function isInitialized() {
30*5153720fSfkaag71        return $this->_db->query("SHOW TABLES LIKE 'data'")->rowCount() != 0;
31*5153720fSfkaag71    }
32*5153720fSfkaag71}
33