setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } return $pdo; } function openDbAndReturnPdo () { $dsn = 'mysql:host=' . MYSQL_HOST . ';dbname=' . MYSQL_DB; $user = MYSQL_USER; $password = MYSQL_PASSWORD; $pdo = null; try { $pdo = new PDO($dsn, $user, $password); $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } return $pdo; } function testDbAccess($host,$dbname,$user,$pass) { $dsn = 'mysql:host=' . $host . ';dbname=' . $dbname; $user = $user; $password = $pass; $pdo = null; try { $pdo = new PDO($dsn, $user, $password); $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { // } if ($pdo != null) { return true; } else { return false; } } /* * To use sql strings that are easy to read the table names are used * without variables. But since the user can specify a prefix for all * tables the substitution must be done somewhere. This is the function * that replaces the %TABLE% by $prefix_table */ public static function substTableAlias($sqlString) { $prefix = TAB_PREFIX; if (!is_null(self::$prefix)) { $prefix = self::$prefix; } $out = str_replace("%queue%",$prefix . 'queue',$sqlString); $out = str_replace("%products%",$prefix . 'products',$out); $out = str_replace("%user%",$prefix . 'user',$out); $out = str_replace("%room%",$prefix . 'room',$out); $out = str_replace("%resttables%",$prefix . 'resttables',$out); $out = str_replace("%bill%",$prefix . 'bill',$out); $out = str_replace("%tablemaps%",$prefix . "tablemaps",$out); $out = str_replace("%tablepos%",$prefix . "tablepos",$out); $out = str_replace("%pricelevel%",$prefix . 'pricelevel',$out); $out = str_replace("%config%",$prefix . 'config',$out); $out = str_replace("%closing%",$prefix . 'closing',$out); $out = str_replace("%printjobs%",$prefix . 'printjob',$out); $out = str_replace("%hist%",$prefix . 'hist',$out); $out = str_replace("%histprod%",$prefix . 'histprod',$out); $out = str_replace("%histconfig%",$prefix . 'histconfig',$out); $out = str_replace("%histuser%",$prefix . 'histuser',$out); $out = str_replace("%histactions%",$prefix . 'histactions',$out); $out = str_replace("%payment%",$prefix . 'payment',$out); $out = str_replace("%billproducts%", $prefix . 'billproducts',$out); $out = str_replace("%work%",$prefix . 'work',$out); $out = str_replace("%comments%",$prefix . 'comments',$out); $out = str_replace("%reservations%",$prefix . 'reservations',$out); $out = str_replace("%logo%",$prefix . 'logo',$out); $out = str_replace("%extras%", $prefix . 'extras',$out); $out = str_replace("%extrasprods%",$prefix . 'extrasprods', $out); $out = str_replace("%queueextras%",$prefix . 'queueextras', $out); $out = str_replace("%ratings%",$prefix . 'ratings', $out); return (str_replace("%prodtype%",$prefix . 'prodtype',$out)); } public function resolveTablenamesInSqlString($sqlString) { return DbUtils::substTableAlias($sqlString); } public static function getTimeZone() { if (is_null(self::$timezone)) { if(session_id() == '') { session_start(); } if (isset($_SESSION['timezone'])) { return $_SESSION['timezone']; } else { return "Europe/Berlin"; } } else { return self::$timezone; } } } ?>