public static function ReportServerRunquery_fetchMode($query, $whereParams = array()) { if (!isset(self::$ReportDB)) { $_host = config::$db_servers['slave']['host']; $_user = config::$db_servers['slave']['report_user']; $_pass = config::$db_servers['slave']['report_pass']; $_default_db = sys_config::$db_server['database']; self::$ReportDB = self::getPdoObject($_host, $_user, $_pass, $_default_db, $ShowException); } $PDO_Obj = self::$ReportDB; /*@var $PDO_Obj PDO*/ //------------------- $mainQuery = $query; $statement = $PDO_Obj->prepare(self::CorrectFarsiString($query)); $keys = array_keys($whereParams); for ($i = 0; $i < count($keys); $i++) { $st = is_int($keys[$i]) ? $keys[$i] + 1 : $keys[$i]; $whereParams[$keys[$i]] = self::CorrectFarsiString($whereParams[$keys[$i]]); $statement->bindParam($st, $whereParams[$keys[$i]]); if (is_int($keys[$i])) { $mainQuery = preg_replace("/\\?/", "'" . $whereParams[$keys[$i]] . "'", $mainQuery, 1); } else { $mainQuery = str_replace($keys[$i], "'" . $whereParams[$keys[$i]] . "'", $mainQuery); } } //............................. $statement->execute(); self::$statements[$PDO_Obj->getAttribute(PDO::ATTR_CONNECTION_STATUS)] = $statement; self::$queryString = $mainQuery; //............................. if ($statement->errorCode() == "00000") { return $statement; } parent::PushException(array_merge($statement->errorInfo(), array("query" => $statement->queryString))); return false; }