debug) { $username = 'root'; $password =''; $dsn = 'mysql:dbname=phpmyadmin;host=127.0.0.1'; } else { $username = 'accueil_insa'; $password = $this->read_password($path_to_password); $dsn = 'mysql:dbname=accueil_insa;host=127.0.0.1'; } try { $this->conn = new PDO($dsn, $username, $password, [PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']); } catch (PDOException $e) { echo $e; } } private function read_password($path_to_password) { if ($this->debug) $real_path = $path_to_password . "includes/.htpassdb_debug"; else $real_path = $path_to_password . "includes/.htpassdb"; $file = fopen($real_path, "r") or die("Unable to open file!");; $password = fgets($file); fclose($file); return $password; } public function get_score_team($team) { $sql = 'SELECT text, points FROM scores WHERE team = ?'; $cursor = $this->conn->prepare($sql); $cursor->execute([$team]); return $cursor->fetchAll(PDO::FETCH_ASSOC); } public function save_scores($scores_json, $team) { $sql = 'DELETE FROM scores WHERE team = ?'; $cursor = $this->conn->prepare($sql); $cursor->execute([$team]); foreach ($scores_json as $value) { $sql = 'INSERT INTO scores (text, points, team) VALUES (?, ?, ?)'; $cursor = $this->conn->prepare($sql); $cursor->execute([$value['text'], $value['points'], $team]); } } public function get_map_info($selector) { $sql = 'SELECT title, description FROM map_insa WHERE selector = ?'; $cursor = $this->conn->prepare($sql); $cursor->execute([$selector]); return $cursor->fetchAll(PDO::FETCH_ASSOC); } public function get_map_selectors() { $sql = 'SELECT selector FROM map_insa'; $cursor = $this->conn->prepare($sql); $cursor->execute(); return $cursor->fetchAll(PDO::FETCH_ASSOC); } public function save_map_info($selector, $info_json) { $sql = 'DELETE FROM map_insa WHERE selector = ?'; $cursor = $this->conn->prepare($sql); $cursor->execute([$selector]); $sql = 'INSERT INTO map_insa (title, description, selector) VALUES (?, ?, ?)'; $cursor = $this->conn->prepare($sql); $cursor->execute([$info_json['title'], $info_json['description'], $selector]); } }