1<?php 2/** 3 * @author Joas Schilling <coding@schilljs.com> 4 * @author Morris Jobke <hey@morrisjobke.de> 5 * @author Robin Appelman <icewind@owncloud.com> 6 * 7 * @copyright Copyright (c) 2018, ownCloud GmbH 8 * @license AGPL-3.0 9 * 10 * This code is free software: you can redistribute it and/or modify 11 * it under the terms of the GNU Affero General Public License, version 3, 12 * as published by the Free Software Foundation. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU Affero General Public License for more details. 18 * 19 * You should have received a copy of the GNU Affero General Public License, version 3, 20 * along with this program. If not, see <http://www.gnu.org/licenses/> 21 * 22 */ 23 24namespace OC\DB; 25 26class AdapterMySQL extends Adapter { 27 28 /** 29 * @param string $tableName 30 */ 31 public function lockTable($tableName) { 32 $this->conn->executeUpdate('LOCK TABLES `' .$tableName . '` WRITE'); 33 } 34 35 public function unlockTable() { 36 $this->conn->executeUpdate('UNLOCK TABLES'); 37 } 38 39 public function fixupStatement($statement) { 40 $characterSet = \OC::$server->getConfig()->getSystemValue('mysql.utf8mb4', false) ? 'utf8mb4' : 'utf8'; 41 $statement = \str_replace(' ILIKE ', ' COLLATE ' . $characterSet . '_general_ci LIKE ', $statement); 42 return $statement; 43 } 44} 45