/**
* ! Medoo 0.8.5 - Copyright 2013, Angel Lai - MIT license - http://medoo.in
*/
class medoo{
protected $database_type = 'mysql';
// For MySQL, MSSQL, Sybase
protected $server = 'localhost';
protected $username = 'username';
protected $password = 'password';
// For SQLite
protected $database_file = '';
// Optional
protected $charset = 'utf8';
protected $database_name = '';
protected $option = array();
public function __construct($options){
try{
$type = strtolower($this -> database_type);
if(is_string($options)){
if($type == 'sqlite'){
$this -> database_file = $options;
}else{
$this -> database_name = $options;
}
}else{
foreach($options as $option => $value){
$this -> $option = $value;
}
}
$type = strtolower($this -> database_type);
switch($type){
case 'mysql':case 'pgsql':$this -> pdo = new PDO($type . ':host=' . $this -> server . ';dbname=' . $this -> database_name, $this -> username, $this -> password, $this -> option);
break;
case 'mssql':case 'sybase':$this -> pdo = new PDO($type . ':host=' . $this -> server . ';dbname=' . $this -> database_name . ',' . $this -> username . ',' . $this -> password, $this -> option);
break;
case 'sqlite':$this -> pdo = new PDO($type . ':' . $this -> database_file, $this -> option);
break;
}
$this -> pdo -> exec('SET NAMES \'' . $this -> charset . '\'');
}
catch(PDOException$e){
echo $e -> getMessage();
}
}
public function query($query){
$this -> queryString = $query;
return $this -> pdo -> query($query);
}
public function exec($query){
$this -> queryString = $query;
return $this -> pdo -> exec($query);
}
public function quote($string){
return $this -> pdo -> quote($string);
}
protected function array_quote($array){
$temp = array();
foreach($array as $value){
$temp[] = is_int($value)?$value:$this -> pdo -> quote($value);
}
return implode($temp, ',');
}
protected function inner_conjunct($data, $conjunctor, $outer_conjunctor){
$haystack = array();
foreach($data as $value){
$haystack[] = '(' . $this -> data_implode($value, $conjunctor) . ')';
}
return implode($outer_conjunctor . ' ', $haystack);
}
protected function data_implode($data, $conjunctor, $outer_conjunctor = null){
$wheres = array();
foreach($data as $key => $value){
if(($key == 'AND' || $key == 'OR') && is_array($value)){
$wheres[] = 0 !== count(array_diff_key($value, array_keys(array_keys($value))))?'(' . $this -> data_implode($valu