/** * function connect($databaseParameters = array()): * Method that make the connection to the database */ public static function connect($databaseParameters = array()) { try { if (self::$__conn === null) { // check for properties first. if (!isset($databaseParameters['host']) && !isset($databaseParameters['name']) && !isset($databaseParameters['user']) && !isset($databaseParameters['pass']) && !isset($databaseParameters['app'])) { throw new Exception('These parameters are obligatory: host="database ip or hostname", name="database name", user="******", pass="******", app="path of your sencha application"'); } // Connect using regular PDO Matcha::connect Abstraction layer. // but make only a connection, not to the database. // and then the database self::$__app = $databaseParameters['app']; $host = (string) (isset($databaseParameters['host']) ? $databaseParameters['host'] : 'localhost'); $port = (int) (isset($databaseParameters['port']) ? $databaseParameters['port'] : '3306'); $dbName = (string) $databaseParameters['name']; $dbUser = (string) $databaseParameters['user']; $dbPass = (string) $databaseParameters['pass']; self::$__conn = new PDO('mysql:host=' . $host . ';port=' . $port . ';', $dbUser, $dbPass, array(PDO::MYSQL_ATTR_LOCAL_INFILE => 1, PDO::ATTR_PERSISTENT => true)); self::$__conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); self::$__conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); // check if the database exist. self::__createDatabase($dbName); self::$__conn->query('USE ' . $dbName . ';'); // set the encryption secret key if provided if (isset($databaseParameters['key'])) { self::$__secretKey = $databaseParameters['key']; } } return self::$__conn; } catch (Exception $e) { MatchaErrorHandler::__errorProcess($e); return false; } }
foreach ($vars as $var) { utf8_encode_deep($input->{$var}); } } } } } $response = null; if (is_array($data)) { $response = array(); foreach ($data as $d) { $response[] = doRpc($d); } } else { $response = doRpc($data); } utf8_encode_deep($response); if ($isForm && $isUpload) { print '<html><body><textarea>'; $json = htmlentities(json_encode($response), ENT_NOQUOTES | ENT_SUBSTITUTE, 'UTF-8'); $json = mb_convert_encoding($json, 'UTF-8', 'UTF-8'); print $json; print '</textarea></body></html>'; } else { header('Content-Type: application/json; charset=utf-8'); $json = htmlentities(json_encode($response), ENT_NOQUOTES | ENT_SUBSTITUTE, 'UTF-8'); $json = mb_convert_encoding($json, 'UTF-8', 'UTF-8'); print $json; } Matcha::$__conn = null;